fixing common off-by-one error with respect to maximum message size
[oweals/gnunet.git] / src / fs / fs_test_lib.c
index 676450efec6c0ba7755368902c971f6ba6a85db0..0b1ff8955e58d584c17fc710cbd939634c6fe9eb 100644 (file)
@@ -228,7 +228,6 @@ progress_cb (void *cls,
 }
 
 
-
 struct StartContext
 {
   struct GNUNET_SCHEDULER_Handle *sched;
@@ -253,7 +252,6 @@ notify_running (void *cls,
 {
   struct StartContext *sctx = cls;
   unsigned int i;
-  unsigned long long fsport;
 
   if (emsg != NULL)
     {
@@ -262,11 +260,21 @@ notify_running (void *cls,
                  emsg);
       return;
     }
+  i = 0;
+  while (i < sctx->total)
+    {
+      if (GNUNET_TESTING_daemon_get (sctx->group,
+                                    i) == d)
+       break;
+      i++;
+    }
+  GNUNET_assert (i < sctx->total);
   GNUNET_assert (sctx->have < sctx->total);
-  sctx->daemons[sctx->have]->cfg = GNUNET_CONFIGURATION_dup (cfg);
-  sctx->daemons[sctx->have]->group = sctx->group;
-  sctx->daemons[sctx->have]->daemon = d;
-  sctx->daemons[sctx->have]->id = *id;
+  GNUNET_assert (sctx->daemons[i]->cfg == NULL);
+  sctx->daemons[i]->cfg = GNUNET_CONFIGURATION_dup (cfg);
+  sctx->daemons[i]->group = sctx->group;
+  sctx->daemons[i]->daemon = d;
+  sctx->daemons[i]->id = *id;
   sctx->have++;
   if (sctx->have == sctx->total)
     {
@@ -279,16 +287,6 @@ notify_running (void *cls,
                               sctx->timeout_task);
       for (i=0;i<sctx->total;i++)
        {
-         fsport = 0;
-         GNUNET_break (GNUNET_OK ==
-                       GNUNET_CONFIGURATION_get_value_number (sctx->daemons[i]->cfg,
-                                                              "fs",
-                                                              "PORT",
-                                                              &fsport));
-         GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                     _("Testing connects to port %llu for peer %u\n"),
-                     fsport,
-                     i);                       
          sctx->daemons[i]->fs = GNUNET_FS_start (sctx->sched,
                                                  sctx->daemons[i]->cfg,
                                                  "<tester>",
@@ -397,11 +395,25 @@ struct ConnectContext
   void *cont_cls;
 };
 
-
+/**
+ * Prototype of a function that will be called whenever
+ * two daemons are connected by the testing library.
+ *
+ * @param cls closure
+ * @param first peer id for first daemon
+ * @param second peer id for the second daemon
+ * @param distance distance between the connected peers
+ * @param first_cfg config for the first daemon
+ * @param second_cfg config for the second daemon
+ * @param first_daemon handle for the first daemon
+ * @param second_daemon handle for the second daemon
+ * @param emsg error message (NULL on success)
+ */
 static void
 notify_connection (void *cls,
                   const struct GNUNET_PeerIdentity *first,
                   const struct GNUNET_PeerIdentity *second,
+                  uint32_t distance,
                   const struct GNUNET_CONFIGURATION_Handle *first_cfg,
                   const struct GNUNET_CONFIGURATION_Handle *second_cfg,
                   struct GNUNET_TESTING_Daemon *first_daemon,