- fix for access of freed meter after ctrl-c
[oweals/gnunet.git] / src / testing / testing_peergroup.c
index e81e9fad89c2214a920e527fbe9c8bd9584e616a..0421b000a6a24852d586d408a87ea76a354b2d2b 100644 (file)
@@ -33,7 +33,7 @@
 #include "gnunet_disk_lib.h"
 
 /** Globals **/
-#define DEFAULT_CONNECT_TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30)
+#define DEFAULT_CONNECT_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 30)
 
 #define DEFAULT_CONNECT_ATTEMPTS 2
 
@@ -46,7 +46,17 @@ struct PeerGroupStartupContext
   unsigned int total;
   unsigned int peers_left;
   unsigned long long max_concurrent_connections;
+
+  /**
+   * Maximum attemps to connect two daemons.
+   */
   unsigned long long connect_attempts;
+
+  /**
+   * How long to spend trying to establish all the connections?
+   */
+  struct GNUNET_TIME_Relative connect_timeout;
+
   unsigned long long max_concurrent_ssh;
   struct GNUNET_TIME_Absolute timeout;
   GNUNET_TESTING_NotifyConnection connect_cb;
@@ -173,7 +183,7 @@ create_meter (unsigned int total, char *start_string, int print)
   ret = GNUNET_malloc (sizeof (struct ProgressMeter));
   ret->print = print;
   ret->total = total;
-  ret->modnum = total / 4;
+  ret->modnum = (total / 4 == 0) ? 1 : (total / 4);
   ret->dotnum = (total / 50) + 1;
   if (start_string != NULL)
     ret->startup_string = GNUNET_strdup (start_string);
@@ -200,17 +210,17 @@ update_meter (struct ProgressMeter *meter)
     {
       if (meter->completed == 0)
       {
-        fprintf (stdout, "%sProgress: [0%%", meter->startup_string);
+        FPRINTF (stdout, "%sProgress: [0%%", meter->startup_string);
       }
       else
-        fprintf (stdout, "%d%%", (int) (((float) meter->completed
-                                         / meter->total) * 100));
+        FPRINTF (stdout, "%d%%",
+                 (int) (((float) meter->completed / meter->total) * 100));
     }
     else if (meter->completed % meter->dotnum == 0)
-      fprintf (stdout, ".");
+      FPRINTF (stdout, "%s",  ".");
 
     if (meter->completed + 1 == meter->total)
-      fprintf (stdout, "%d%%]\n", 100);
+      FPRINTF (stdout, "%d%%]\n", 100);
     fflush (stdout);
   }
   meter->completed++;
@@ -304,8 +314,7 @@ end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  * failure (peers failed to connect).
  */
 static void
-internal_topology_callback (void *cls,
-                            const struct GNUNET_PeerIdentity *first,
+internal_topology_callback (void *cls, const struct GNUNET_PeerIdentity *first,
                             const struct GNUNET_PeerIdentity *second,
                             uint32_t distance,
                             const struct GNUNET_CONFIGURATION_Handle *first_cfg,
@@ -332,9 +341,9 @@ internal_topology_callback (void *cls,
 #endif
 
 #if TIMING
-  if (GNUNET_TIME_absolute_get_difference (connect_last_time,
-                                           GNUNET_TIME_absolute_get
-                                           ()).rel_value >
+  if (GNUNET_TIME_absolute_get_difference
+      (connect_last_time,
+       GNUNET_TIME_absolute_get ()).rel_value >
       GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,
                                      CONN_UPDATE_DURATION).rel_value)
   {
@@ -345,10 +354,10 @@ internal_topology_callback (void *cls,
     new_failed_connections = failed_connections - previous_failed_connections;
 
     /* Get duration in seconds */
-    duration
-        GNUNET_TIME_absolute_get_difference (connect_last_time,
-                                               GNUNET_TIME_absolute_get
-                                               ()).rel_value / 1000;
+    duration =
+        GNUNET_TIME_absolute_get_difference (connect_last_time,
+                                             GNUNET_TIME_absolute_get
+                                             ()).rel_value / 1000;
     total_duration =
         GNUNET_TIME_absolute_get_difference (connect_start_time,
                                              GNUNET_TIME_absolute_get
@@ -360,9 +369,8 @@ internal_topology_callback (void *cls,
     conns_per_sec_total = (double) total_connections / total_duration;
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "Recent: %.2f/s, Total: %.2f/s, Recent failed: %.2f/s, total failed %.2f/s\n",
-                conns_per_sec_recent, CONN_UPDATE_DURATION,
-                conns_per_sec_total, failed_conns_per_sec_recent,
-                failed_conns_per_sec_total);
+                conns_per_sec_recent, CONN_UPDATE_DURATION, conns_per_sec_total,
+                failed_conns_per_sec_recent, failed_conns_per_sec_total);
     connect_last_time = GNUNET_TIME_absolute_get ();
     previous_connections = total_connections;
     previous_failed_connections = failed_connections;
@@ -410,24 +418,22 @@ internal_topology_callback (void *cls,
 
   GNUNET_assert (pg_start_ctx->connect_meter != NULL);
   if (pg_start_ctx->connect_cb != NULL)
-    pg_start_ctx->connect_cb (pg_start_ctx->cls, first,
-                              second,
-                              distance,
-                              first_cfg,
-                              second_cfg, first_daemon, second_daemon, emsg);
+    pg_start_ctx->connect_cb (pg_start_ctx->cls, first, second, distance,
+                              first_cfg, second_cfg, first_daemon,
+                              second_daemon, emsg);
   if (GNUNET_YES == update_meter (pg_start_ctx->connect_meter))
   {
 #if VERBOSE
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Created %d total connections, which is our target number!  Starting next phase of testing.\n",
-                total_connections);
+                pg_start_ctx->total_connections);
 #endif
 
 #if TIMING
-    total_duration
-        GNUNET_TIME_absolute_get_difference (connect_start_time,
-                                               GNUNET_TIME_absolute_get
-                                               ()).rel_value / 1000;
+    total_duration =
+        GNUNET_TIME_absolute_get_difference (connect_start_time,
+                                             GNUNET_TIME_absolute_get
+                                             ()).rel_value / 1000;
     failed_conns_per_sec_total = (double) failed_connections / total_duration;
     conns_per_sec_total = (double) total_connections / total_duration;
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -457,6 +463,16 @@ internal_topology_callback (void *cls,
   }
 }
 
+
+/**
+ * Callback called for each started daemon.
+ *
+ * @param cls Clause (PG Context).
+ * @param id PeerIdentidy of started daemon.
+ * @param cfg Configuration used by the daemon.
+ * @param d Handle for the daemon.
+ * @param emsg Error message, NULL on success.
+ */
 static void
 internal_peers_started_callback (void *cls,
                                  const struct GNUNET_PeerIdentity *id,
@@ -476,38 +492,45 @@ internal_peers_started_callback (void *cls,
 
 #if VERBOSE > 1
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Started daemon %llu out of %llu\n",
-              (num_peers - peers_left) + 1, num_peers);
+              (pg_start_ctx->total - pg_start_ctx->peers_left) + 1,
+              pg_start_ctx->total);
 #endif
 
   pg_start_ctx->peers_left--;
 
+  if (NULL == pg_start_ctx->peer_start_meter)
+  {
+    /* Cancelled Ctrl-C or error */
+    return;
+  }
   if (GNUNET_YES == update_meter (pg_start_ctx->peer_start_meter))
   {
 #if VERBOSE
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "All %d daemons started, now connecting peers!\n", num_peers);
+                "All %d daemons started, now connecting peers!\n",
+                pg_start_ctx->total);
 #endif
     GNUNET_assert (pg_start_ctx->die_task != GNUNET_SCHEDULER_NO_TASK);
     GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task);
 
     pg_start_ctx->expected_connections = UINT_MAX;
+    // FIXME: why whould peers_left be != 0?? Or pg NULL?
     if ((pg_start_ctx->pg != NULL) && (pg_start_ctx->peers_left == 0))
     {
       pg_start_ctx->connect_start_time = GNUNET_TIME_absolute_get ();
-      pg_start_ctx->expected_connections
-          = GNUNET_TESTING_connect_topology (pg_start_ctx->pg,
-                                             pg_start_ctx->connect_topology,
-                                             pg_start_ctx->connect_topology_option,
-                                             pg_start_ctx->connect_topology_option_modifier,
-                                             DEFAULT_CONNECT_TIMEOUT,
-                                             pg_start_ctx->connect_attempts,
-                                             NULL, NULL);
-
-      pg_start_ctx->connect_meter
-          = create_meter (pg_start_ctx->expected_connections,
-                          "Peer connection ", pg_start_ctx->verbose);
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Have %d expected connections\n",
+      pg_start_ctx->expected_connections =
+          GNUNET_TESTING_connect_topology (pg_start_ctx->pg,
+                                           pg_start_ctx->connect_topology,
+                                           pg_start_ctx->connect_topology_option,
+                                           pg_start_ctx->connect_topology_option_modifier,
+                                           pg_start_ctx->connect_timeout,
+                                           pg_start_ctx->connect_attempts, NULL,
+                                           NULL);
+
+      pg_start_ctx->connect_meter =
+          create_meter (pg_start_ctx->expected_connections, "Peer connection ",
+                        pg_start_ctx->verbose);
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Have %d expected connections\n",
                   pg_start_ctx->expected_connections);
     }
 
@@ -518,6 +541,7 @@ internal_peers_started_callback (void *cls,
           GNUNET_strdup ("from connect topology (bad return)");
       pg_start_ctx->die_task =
           GNUNET_SCHEDULER_add_now (&end_badly, pg_start_ctx);
+      return;
     }
 
     GNUNET_free_non_null (pg_start_ctx->fail_reason);
@@ -554,19 +578,22 @@ internal_hostkey_callback (void *cls, const struct GNUNET_PeerIdentity *id,
 #if VERBOSE > 1
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Hostkey (%d/%d) created for peer `%s'\n",
-              num_peers - peers_left, num_peers, GNUNET_i2s (id));
+              pg_start_ctx->total - pg_start_ctx->peers_left + 1,
+              pg_start_ctx->total, GNUNET_i2s (id));
 #endif
 
   pg_start_ctx->peers_left--;
   if (GNUNET_YES == update_meter (pg_start_ctx->hostkey_meter))
   {
     GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task);
+    GNUNET_free_non_null (pg_start_ctx->fail_reason);
     /* Set up task in case topology creation doesn't finish
      * within a reasonable amount of time */
+    pg_start_ctx->fail_reason = GNUNET_strdup ("from create_topology");
     pg_start_ctx->die_task =
         GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining
                                       (pg_start_ctx->timeout), &end_badly,
-                                      "from create_topology");
+                                      pg_start_ctx);
     pg_start_ctx->peers_left = pg_start_ctx->total;     /* Reset counter */
     create_expected_connections =
         GNUNET_TESTING_create_topology (pg_start_ctx->pg,
@@ -583,16 +610,22 @@ internal_hostkey_callback (void *cls, const struct GNUNET_PeerIdentity *id,
     else
     {
       GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task);
-      pg_start_ctx->die_task = GNUNET_SCHEDULER_add_now (&end_badly,
-                                                         "from create topology (bad return)");
+      GNUNET_free_non_null (pg_start_ctx->fail_reason);
+      pg_start_ctx->fail_reason =
+          GNUNET_strdup ("from create topology (bad return)");
+      pg_start_ctx->die_task =
+          GNUNET_SCHEDULER_add_now (&end_badly, pg_start_ctx);
+      return;
     }
 
     GNUNET_SCHEDULER_cancel (pg_start_ctx->die_task);
-    pg_start_ctx->die_task
-        =
+    GNUNET_free_non_null (pg_start_ctx->fail_reason);
+    pg_start_ctx->fail_reason =
+        GNUNET_strdup ("from continue startup (timeout)");
+    pg_start_ctx->die_task =
         GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining
                                       (pg_start_ctx->timeout), &end_badly,
-                                      "from continue startup (timeout)");
+                                      pg_start_ctx);
   }
 }
 
@@ -604,12 +637,10 @@ internal_hostkey_callback (void *cls, const struct GNUNET_PeerIdentity *id,
  * @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 emsg error message (NULL on success)
  */
 void
-write_topology_cb (void *cls,
-                   const struct GNUNET_PeerIdentity *first,
+write_topology_cb (void *cls, const struct GNUNET_PeerIdentity *first,
                    const struct GNUNET_PeerIdentity *second, const char *emsg)
 {
   struct TopologyOutputContext *topo_ctx;
@@ -718,18 +749,18 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
                                 const struct GNUNET_TESTING_Host *hostnames)
 {
   struct PeerGroupStartupContext *pg_start_ctx;
-  unsigned long long temp_config_number;
   char *temp_str;
   int temp;
+  struct GNUNET_TIME_Relative rtimeout;
 
   GNUNET_assert (total > 0);
   GNUNET_assert (cfg != NULL);
 
   pg_start_ctx = GNUNET_malloc (sizeof (struct PeerGroupStartupContext));
 
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, "testing",
-                                                          "connect_attempts",
-                                                          &pg_start_ctx->connect_attempts))
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_number (cfg, "testing", "connect_attempts",
+                                             &pg_start_ctx->connect_attempts))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n",
                 "testing", "connect_attempts");
@@ -737,10 +768,17 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
     return NULL;
   }
 
-  if (GNUNET_OK
-      != GNUNET_CONFIGURATION_get_value_number (cfg, "testing",
-                                                "max_outstanding_connections",
-                                                &pg_start_ctx->max_concurrent_connections))
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_time (cfg, "testing", "CONNECT_TIMEOUT",
+                                           &pg_start_ctx->connect_timeout))
+  {
+    pg_start_ctx->connect_timeout = DEFAULT_CONNECT_TIMEOUT;
+  }
+
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_number (cfg, "testing",
+                                             "max_outstanding_connections",
+                                             &pg_start_ctx->max_concurrent_connections))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n",
                 "testing", "max_outstanding_connections");
@@ -748,9 +786,10 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
     return NULL;
   }
 
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, "testing",
-                                                          "max_concurrent_ssh",
-                                                          &pg_start_ctx->max_concurrent_ssh))
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_number (cfg, "testing",
+                                             "max_concurrent_ssh",
+                                             &pg_start_ctx->max_concurrent_ssh))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n",
                 "testing", "max_concurrent_ssh");
@@ -769,29 +808,25 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
     return NULL;
   }
 
-  if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (cfg, "testing",
-                                                          "peergroup_timeout",
-                                                          &temp_config_number))
-    pg_start_ctx->timeout =
-        GNUNET_TIME_relative_to_absolute (GNUNET_TIME_relative_multiply
-                                          (GNUNET_TIME_UNIT_SECONDS,
-                                           temp_config_number));
-  else
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_time (cfg, "testing", "PEERGROUP_TIMEOUT",
+                                           &rtimeout))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Must provide option %s:%s!\n",
-                "testing", "peergroup_timeout");
+                "testing", "PEERGROUP_TIMEOUT");
     GNUNET_free (pg_start_ctx);
     return NULL;
   }
+  pg_start_ctx->timeout = GNUNET_TIME_relative_to_absolute (rtimeout);
 
 
   /* Read topology related options from the configuration file */
   temp_str = NULL;
-  if ((GNUNET_YES == GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
-                                                            "topology",
-                                                            &temp_str))
-      && (GNUNET_NO ==
-          GNUNET_TESTING_topology_get (&pg_start_ctx->topology, temp_str)))
+  if ((GNUNET_YES ==
+       GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "topology",
+                                              &temp_str)) &&
+      (GNUNET_NO ==
+       GNUNET_TESTING_topology_get (&pg_start_ctx->topology, temp_str)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "Invalid topology `%s' given for section %s option %s\n",
@@ -821,9 +856,9 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
     GNUNET_free (temp_str);
   }
 
-  if (GNUNET_OK
-      != GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "percentage",
-                                                &temp_str))
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "percentage",
+                                             &temp_str))
     pg_start_ctx->topology_percentage = 0.5;
   else
   {
@@ -831,9 +866,9 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
     GNUNET_free (temp_str);
   }
 
-  if (GNUNET_OK
-      != GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "probability",
-                                                &temp_str))
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_string (cfg, "testing", "probability",
+                                             &temp_str))
     pg_start_ctx->topology_probability = 0.5;
   else
   {
@@ -841,13 +876,11 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
     GNUNET_free (temp_str);
   }
 
-  if ((GNUNET_YES
-       == GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
-                                                 "connect_topology",
-                                                 &temp_str))
-      && (GNUNET_NO ==
-          GNUNET_TESTING_topology_get (&pg_start_ctx->connect_topology,
-                                       temp_str)))
+  if ((GNUNET_YES ==
+       GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
+                                              "connect_topology", &temp_str)) &&
+      (GNUNET_NO ==
+       GNUNET_TESTING_topology_get (&pg_start_ctx->connect_topology, temp_str)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "Invalid connect topology `%s' given for section %s option %s\n",
@@ -855,14 +888,13 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
   }
   GNUNET_free_non_null (temp_str);
 
-  if ((GNUNET_YES
-       == GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
-                                                 "connect_topology_option",
-                                                 &temp_str))
-      && (GNUNET_NO
-          ==
-          GNUNET_TESTING_topology_option_get
-          (&pg_start_ctx->connect_topology_option, temp_str)))
+  if ((GNUNET_YES ==
+       GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
+                                              "connect_topology_option",
+                                              &temp_str)) &&
+      (GNUNET_NO ==
+       GNUNET_TESTING_topology_option_get
+       (&pg_start_ctx->connect_topology_option, temp_str)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "Invalid connect topology option `%s' given for section %s option %s\n",
@@ -871,14 +903,13 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
   }
   GNUNET_free_non_null (temp_str);
 
-  if (GNUNET_YES
-      == GNUNET_CONFIGURATION_get_value_string (cfg,
-                                                "testing",
-                                                "connect_topology_option_modifier",
-                                                &temp_str))
+  if (GNUNET_YES ==
+      GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
+                                             "connect_topology_option_modifier",
+                                             &temp_str))
   {
-    if (sscanf (temp_str, "%lf",
-                &pg_start_ctx->connect_topology_option_modifier) != 1)
+    if (sscanf
+        (temp_str, "%lf", &pg_start_ctx->connect_topology_option_modifier) != 1)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                   _
@@ -891,17 +922,16 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
     GNUNET_free (temp_str);
   }
 
-  if (GNUNET_YES
-      != GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
-                                                "blacklist_transports",
-                                                &pg_start_ctx->restrict_transports))
+  if (GNUNET_YES !=
+      GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
+                                             "blacklist_transports",
+                                             &pg_start_ctx->restrict_transports))
     pg_start_ctx->restrict_transports = NULL;
 
   pg_start_ctx->restrict_topology = GNUNET_TESTING_TOPOLOGY_NONE;
-  if ((GNUNET_YES
-       == GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
-                                                 "blacklist_topology",
-                                                 &temp_str))
+  if ((GNUNET_YES ==
+       GNUNET_CONFIGURATION_get_value_string (cfg, "testing",
+                                              "blacklist_topology", &temp_str))
       && (GNUNET_NO ==
           GNUNET_TESTING_topology_get (&pg_start_ctx->restrict_topology,
                                        temp_str)))
@@ -928,23 +958,24 @@ GNUNET_TESTING_peergroup_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
                     pg_start_ctx->verbose);
   /* Make compilers happy */
   reset_meter (pg_start_ctx->peer_start_meter);
-  pg_start_ctx->die_task
-      =
+  pg_start_ctx->fail_reason =
+      GNUNET_strdup
+      ("didn't generate all hostkeys within allowed startup time!");
+  pg_start_ctx->die_task =
       GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_absolute_get_remaining
                                     (pg_start_ctx->timeout), &end_badly,
-                                    "didn't generate all hostkeys within allowed startup time!");
-
-  pg_start_ctx->pg
-      = GNUNET_TESTING_daemons_start (pg_start_ctx->cfg,
-                                      pg_start_ctx->peers_left,
-                                      pg_start_ctx->max_concurrent_connections,
-                                      pg_start_ctx->max_concurrent_ssh,
-                                      GNUNET_TIME_absolute_get_remaining
-                                      (pg_start_ctx->timeout),
-                                      &internal_hostkey_callback, pg_start_ctx,
-                                      &internal_peers_started_callback,
-                                      pg_start_ctx, &internal_topology_callback,
-                                      pg_start_ctx, pg_start_ctx->hostnames);
+                                    pg_start_ctx);
+
+  pg_start_ctx->pg =
+      GNUNET_TESTING_daemons_start (pg_start_ctx->cfg, pg_start_ctx->peers_left,
+                                    pg_start_ctx->max_concurrent_connections,
+                                    pg_start_ctx->max_concurrent_ssh,
+                                    GNUNET_TIME_absolute_get_remaining
+                                    (pg_start_ctx->timeout),
+                                    &internal_hostkey_callback, pg_start_ctx,
+                                    &internal_peers_started_callback,
+                                    pg_start_ctx, &internal_topology_callback,
+                                    pg_start_ctx, pg_start_ctx->hostnames);
 
   return pg_start_ctx->pg;
 }