don't bypass GNUnet IO
[oweals/gnunet.git] / src / util / test_server.c
index 96b27558e5102c0981727daad4d1d6d1eb06119c..901b78a084392ef991106ca2008b294de527b902 100644 (file)
@@ -66,7 +66,10 @@ signal_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 }
 
 
-static GNUNET_SCHEDULER_TaskIdentifier
+static GNUNET_SCHEDULER_TaskIdentifier ti;
+
+
+static void
 my_receive (void *cls,
             size_t max,
             struct GNUNET_TIME_Relative timeout,
@@ -84,7 +87,8 @@ my_receive (void *cls,
       *ok = 2;                  /* report success */
       msg.type = htons (MY_TYPE2);
       msg.size = htons (sizeof (struct GNUNET_MessageHeader));
-      receiver (receiver_cls, &msg, sizeof (struct GNUNET_MessageHeader), NULL, 0, 0);
+      receiver (receiver_cls, &msg, sizeof (struct GNUNET_MessageHeader),
+                NULL, 0, 0);
       break;
     case 3:
       /* called after first receive instantly
@@ -96,20 +100,17 @@ my_receive (void *cls,
       stctx->cb = receiver;
       stctx->cb_cls = receiver_cls;
       ret = GNUNET_SCHEDULER_add_delayed (sched,
-                                          GNUNET_NO,
-                                          GNUNET_SCHEDULER_PRIORITY_KEEP,
-                                          GNUNET_SCHEDULER_NO_TASK,
                                           timeout, &signal_timeout, stctx);
       break;
     default:
       GNUNET_assert (0);
     }
-  return ret;
+  ti = ret;
 }
 
 
 static void
-my_cancel (void *cls, GNUNET_SCHEDULER_TaskIdentifier ti)
+my_cancel (void *cls)
 {
   GNUNET_SCHEDULER_cancel (sched, ti);
 }
@@ -231,7 +232,13 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct sockaddr_in sa;
   struct GNUNET_MessageHeader msg;
+  struct sockaddr * sap[2];
+  socklen_t slens[2];
 
+  sap[0] = (struct sockaddr*) &sa;
+  slens[0] = sizeof (sa);
+  sap[1] = NULL;
+  slens[1] = 0;
   sched = tc->sched;
   memset (&sa, 0, sizeof (sa));
 #if HAVE_SOCKADDR_IN_SIN_LEN
@@ -242,8 +249,8 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   server = GNUNET_SERVER_create (tc->sched,
                                  NULL,
                                  NULL,
-                                 (const struct sockaddr *) &sa,
-                                 sizeof (sa),
+                                 sap,
+                                slens,
                                  1024,
                                  GNUNET_TIME_relative_multiply
                                  (GNUNET_TIME_UNIT_MILLISECONDS, 250),