gnunet-svn
[Top][All Lists]
Advanced

[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 */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]