- disable try_connect to force topology
[oweals/gnunet.git] / src / mesh / test_mesh_small.c
index 1fbb45adf9f6466fe122cfca588ee7176b3b8acf..efe939876f7960dcc0703181dd40c0052672192f 100644 (file)
@@ -285,6 +285,11 @@ disconnect_mesh_peers (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 }
 
 
+/**
+ * Abort test: schedule disconnect and shutdown immediately
+ * 
+ * @param line Line in the code the abort is requested from (__LINE__).
+ */
 void
 abort_test (long line)
 {
@@ -292,9 +297,9 @@ abort_test (long line)
   {
     GNUNET_SCHEDULER_cancel (disconnect_task);
   }
-    disconnect_task = GNUNET_SCHEDULER_add_delayed (SHORT_TIME,
-                                                    &disconnect_mesh_peers,
-                                                    (void *) line);
+  disconnect_task = GNUNET_SCHEDULER_add_delayed (SHORT_TIME,
+                                                  &disconnect_mesh_peers,
+                                                  (void *) line);
 }
 
 /**
@@ -384,7 +389,7 @@ tmt_rdy (void *cls, size_t size, void *buf)
   if (size < size_payload || NULL == buf)
   {
     GNUNET_break (0);
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "size %u, buf %p, data_sent %u, data_received %u\n",
                 size,
                 buf,
@@ -527,10 +532,15 @@ data_callback (void *cls, struct GNUNET_MESH_Tunnel *tunnel, void **tunnel_ctx,
       show_end_data();
     }
     if (test == P2P_SIGNAL)
+    {
       GNUNET_MESH_tunnel_destroy (incoming_t);
+      incoming_t = NULL;
+    }
     else
+    {
       GNUNET_MESH_tunnel_destroy (t);
-    t = NULL;
+      t = NULL;
+    }
   }
 
   if (GNUNET_SCHEDULER_NO_TASK != disconnect_task)
@@ -655,6 +665,16 @@ dh (void *cls, const struct GNUNET_PeerIdentity *peer)
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "peer %s disconnected\n",
               GNUNET_i2s (peer));
+  if (P2P_SIGNAL == test)
+  {
+    ok ++;
+    if (GNUNET_SCHEDULER_NO_TASK != disconnect_task)
+    {
+      GNUNET_SCHEDULER_cancel (disconnect_task);
+    }
+    disconnect_task = GNUNET_SCHEDULER_add_now (&disconnect_mesh_peers,
+                                                (void *) __LINE__);
+  }
   return;
 }