[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r22050 - in gnunet/src: include stream
From: |
gnunet |
Subject: |
[GNUnet-SVN] r22050 - in gnunet/src: include stream |
Date: |
Sat, 16 Jun 2012 21:27:15 +0200 |
Author: harsha
Date: 2012-06-16 21:27:15 +0200 (Sat, 16 Jun 2012)
New Revision: 22050
Modified:
gnunet/src/include/gnunet_stream_lib.h
gnunet/src/stream/stream_api.c
gnunet/src/stream/test_stream_2peers.c
gnunet/src/stream/test_stream_api.c
gnunet/src/stream/test_stream_big.c
gnunet/src/stream/test_stream_local.c
Log:
-stream testing hooks and options
Modified: gnunet/src/include/gnunet_stream_lib.h
===================================================================
--- gnunet/src/include/gnunet_stream_lib.h 2012-06-16 19:22:49 UTC (rev
22049)
+++ gnunet/src/include/gnunet_stream_lib.h 2012-06-16 19:27:15 UTC (rev
22050)
@@ -103,7 +103,13 @@
* of '0' means to use the round-trip time (plus a tiny grace period);
* this is also the default.
*/
- GNUNET_STREAM_OPTION_INITIAL_RETRANSMIT_TIMEOUT
+ GNUNET_STREAM_OPTION_INITIAL_RETRANSMIT_TIMEOUT,
+
+ /**
+ * Option to set the write sequence number. Takes a uint32_t as parameter
+ * to set the value of the write sequence number
+ */
+ GNUNET_STREAM_OPTION_TESTING_SET_WRITE_SEQUENCE_NUMBER
};
@@ -211,13 +217,15 @@
* @param listen_cb this function will be called when a peer tries to establish
* a stream with us
* @param listen_cb_cls closure for listen_cb
+ * @param ... options to the stream, terminated by GNUNET_STREAM_OPTION_END
* @return listen socket, NULL for any error
*/
struct GNUNET_STREAM_ListenSocket *
GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg,
GNUNET_MESH_ApplicationType app_port,
GNUNET_STREAM_ListenCallback listen_cb,
- void *listen_cb_cls);
+ void *listen_cb_cls,
+ ...);
/**
Modified: gnunet/src/stream/stream_api.c
===================================================================
--- gnunet/src/stream/stream_api.c 2012-06-16 19:22:49 UTC (rev 22049)
+++ gnunet/src/stream/stream_api.c 2012-06-16 19:27:15 UTC (rev 22050)
@@ -301,6 +301,16 @@
GNUNET_MESH_ApplicationType app_port;
/**
+ * Whether testing mode is active or not
+ */
+ int testing_active;
+
+ /**
+ * The write sequence number to be set incase of testing
+ */
+ uint32_t testing_set_write_sequence_number_value;
+
+ /**
* The session id associated with this stream connection
* FIXME: Not used currently, may be removed
*/
@@ -374,6 +384,21 @@
* FIXME: Remove if not required!
*/
GNUNET_MESH_ApplicationType port;
+
+ /**
+ * The retransmit timeout
+ */
+ struct GNUNET_TIME_Relative retransmit_timeout;
+
+ /**
+ * Whether testing mode is active or not
+ */
+ int testing_active;
+
+ /**
+ * The write sequence number to be set incase of testing
+ */
+ uint32_t testing_set_write_sequence_number_value;
};
@@ -2666,7 +2691,11 @@
socket->session_id = 0; /* FIXME */
socket->state = STATE_INIT;
socket->lsocket = lsocket;
-
+ socket->retransmit_timeout = lsocket->retransmit_timeout;
+ socket->testing_active = lsocket->testing_active;
+ socket->testing_set_write_sequence_number_value =
+ lsocket->testing_set_write_sequence_number_value;
+
LOG (GNUNET_ERROR_TYPE_DEBUG,
"%s: Peer %s initiated tunnel to us\n",
GNUNET_i2s (&socket->other_peer),
@@ -2777,6 +2806,7 @@
/* Set defaults */
socket->retransmit_timeout =
GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, default_timeout);
+ socket->testing_active = GNUNET_NO;
va_start (vargs, open_cb_cls); /* Parse variable args */
do {
option = va_arg (vargs, enum GNUNET_STREAM_Option);
@@ -2787,6 +2817,11 @@
socket->retransmit_timeout = va_arg (vargs,
struct GNUNET_TIME_Relative);
break;
+ case GNUNET_STREAM_OPTION_TESTING_SET_WRITE_SEQUENCE_NUMBER:
+ socket->testing_active = GNUNET_YES;
+ socket->testing_set_write_sequence_number_value = va_arg (vargs,
+ uint32_t);
+ break;
case GNUNET_STREAM_OPTION_END:
break;
}
@@ -3018,19 +3053,46 @@
* @param listen_cb this function will be called when a peer tries to establish
* a stream with us
* @param listen_cb_cls closure for listen_cb
+ * @param ... options to the stream, terminated by GNUNET_STREAM_OPTION_END
* @return listen socket, NULL for any error
*/
struct GNUNET_STREAM_ListenSocket *
GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg,
GNUNET_MESH_ApplicationType app_port,
GNUNET_STREAM_ListenCallback listen_cb,
- void *listen_cb_cls)
+ void *listen_cb_cls,
+ ...)
{
/* FIXME: Add variable args for passing configration options? */
struct GNUNET_STREAM_ListenSocket *lsocket;
GNUNET_MESH_ApplicationType ports[] = {app_port, 0};
+ enum GNUNET_STREAM_Option option;
+ va_list vargs;
lsocket = GNUNET_malloc (sizeof (struct GNUNET_STREAM_ListenSocket));
+ /* Set defaults */
+ lsocket->retransmit_timeout =
+ GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, default_timeout);
+ lsocket->testing_active = GNUNET_NO;
+ va_start (vargs, listen_cb_cls);
+ do {
+ option = va_arg (vargs, enum GNUNET_STREAM_Option);
+ switch (option)
+ {
+ case GNUNET_STREAM_OPTION_INITIAL_RETRANSMIT_TIMEOUT:
+ lsocket->retransmit_timeout = va_arg (vargs,
+ struct GNUNET_TIME_Relative);
+ break;
+ case GNUNET_STREAM_OPTION_TESTING_SET_WRITE_SEQUENCE_NUMBER:
+ lsocket->testing_active = GNUNET_YES;
+ lsocket->testing_set_write_sequence_number_value = va_arg (vargs,
+ uint32_t);
+ break;
+ case GNUNET_STREAM_OPTION_END:
+ break;
+ }
+ } while (GNUNET_STREAM_OPTION_END != option);
+ va_end (vargs);
lsocket->port = app_port;
lsocket->listen_cb = listen_cb;
lsocket->listen_cb_cls = listen_cb_cls;
Modified: gnunet/src/stream/test_stream_2peers.c
===================================================================
--- gnunet/src/stream/test_stream_2peers.c 2012-06-16 19:22:49 UTC (rev
22049)
+++ gnunet/src/stream/test_stream_2peers.c 2012-06-16 19:27:15 UTC (rev
22050)
@@ -474,7 +474,8 @@
peer2_listen_socket = GNUNET_STREAM_listen (d2->cfg,
10, /* App port */
&stream_listen_cb,
- NULL);
+ NULL,
+ GNUNET_STREAM_OPTION_END);
GNUNET_assert (NULL != peer2_listen_socket);
/* Connect to stream library */
Modified: gnunet/src/stream/test_stream_api.c
===================================================================
--- gnunet/src/stream/test_stream_api.c 2012-06-16 19:22:49 UTC (rev 22049)
+++ gnunet/src/stream/test_stream_api.c 2012-06-16 19:27:15 UTC (rev 22050)
@@ -348,7 +348,8 @@
peer2_listen_socket = GNUNET_STREAM_listen (config,
10, /* App port */
&stream_listen_cb,
- NULL);
+ NULL,
+ GNUNET_STREAM_OPTION_END);
GNUNET_assert (NULL != peer2_listen_socket);
/* Connect to stream library */
@@ -356,7 +357,8 @@
&self, /* Null for local peer? */
10, /* App port */
&stream_open_cb,
- (void *) &peer1);
+ (void *) &peer1,
+ GNUNET_STREAM_OPTION_END);
GNUNET_assert (NULL != peer1.socket);
}
Modified: gnunet/src/stream/test_stream_big.c
===================================================================
--- gnunet/src/stream/test_stream_big.c 2012-06-16 19:22:49 UTC (rev 22049)
+++ gnunet/src/stream/test_stream_big.c 2012-06-16 19:27:15 UTC (rev 22050)
@@ -345,7 +345,8 @@
peer2_listen_socket = GNUNET_STREAM_listen (config,
10, /* App port */
&stream_listen_cb,
- NULL);
+ NULL,
+ GNUNET_STREAM_OPTION_END);
GNUNET_assert (NULL != peer2_listen_socket);
/* Connect to stream library */
@@ -353,7 +354,8 @@
&self, /* Null for local peer? */
10, /* App port */
&stream_open_cb,
- (void *) &peer1);
+ (void *) &peer1,
+ GNUNET_STREAM_OPTION_END);
GNUNET_assert (NULL != peer1.socket);
}
Modified: gnunet/src/stream/test_stream_local.c
===================================================================
--- gnunet/src/stream/test_stream_local.c 2012-06-16 19:22:49 UTC (rev
22049)
+++ gnunet/src/stream/test_stream_local.c 2012-06-16 19:27:15 UTC (rev
22050)
@@ -373,7 +373,8 @@
peer2_listen_socket = GNUNET_STREAM_listen (config_peer2,
10, /* App port */
&stream_listen_cb,
- &peer2);
+ &peer2,
+ GNUNET_STREAM_OPTION_END);
GNUNET_assert (NULL != peer2_listen_socket);
/* Connect to stream library */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22050 - in gnunet/src: include stream,
gnunet <=