-doxygen
[oweals/gnunet.git] / src / dv / test_transport_dv.c
index 898ea7fd5e111b3a52ac6fd59a7115a27f7015f2..fd55750a40ab9a77ff71815a36af3aa22e2a1aac 100644 (file)
@@ -32,6 +32,18 @@ static int ok;
 
 struct GNUNET_TESTBED_Operation *topology_op;
 
+static GNUNET_SCHEDULER_TaskIdentifier shutdown_task;
+
+static void do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  shutdown_task = GNUNET_SCHEDULER_NO_TASK;
+  if (NULL != topology_op)
+  {
+    GNUNET_TESTBED_operation_done (topology_op);
+    topology_op = NULL;
+  }
+}
+
 static void topology_completed (void *cls,
                                 unsigned int nsuccess,
                                 unsigned int nfailures)
@@ -60,6 +72,7 @@ test_connection (void *cls,
                  unsigned int links_succeeded,
                  unsigned int links_failed)
 {
+  shutdown_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &do_shutdown, NULL);
   if (4 != num_peers)
   {
     ok = 1;
@@ -82,7 +95,6 @@ test_connection (void *cls,
   ok = 1;
   fprintf (stderr, "Testbed connected peers, should not happen...\n");
   GNUNET_SCHEDULER_shutdown ();
-
 }