- use correct hashmap
[oweals/gnunet.git] / src / mesh / test_mesh_local_2.c
index 9da611bf4f6b28496c4d78359981bc1fe3ee9602..d495b7161b3fb164c89391532122706b4167aa76 100644 (file)
@@ -27,7 +27,7 @@
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_dht_service.h"
-#include "gnunet_mesh_service_new.h"
+#include "gnunet_mesh_service.h"
 
 #define VERBOSE 1
 #define VERBOSE_ARM 0
@@ -36,6 +36,8 @@ static struct GNUNET_OS_Process *arm_pid;
 static struct GNUNET_MESH_Handle *mesh_peer_1;
 static struct GNUNET_MESH_Handle *mesh_peer_2;
 static struct GNUNET_MESH_Tunnel *t;
+static unsigned int one = 1;
+static unsigned int two = 2;
 
 static int result;
 static GNUNET_SCHEDULER_TaskIdentifier abort_task;
@@ -53,6 +55,10 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_SCHEDULER_cancel (abort_task);
   }
+  if (NULL != t)
+  {
+    GNUNET_MESH_tunnel_destroy(t);
+  }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: D1\n");
   if (NULL != mesh_peer_1)
   {
@@ -70,7 +76,7 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: Wait\n");
   GNUNET_assert (GNUNET_OK == GNUNET_OS_process_wait (arm_pid));
-  GNUNET_OS_process_close (arm_pid);
+  GNUNET_OS_process_destroy (arm_pid);
 }
 
 
@@ -80,7 +86,7 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 static void
 do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: ABORT\n");
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: ABORT\n");
   if (0 != test_task)
   {
     GNUNET_SCHEDULER_cancel (test_task);
@@ -105,9 +111,9 @@ do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  */
 static int
 data_callback (void *cls, struct GNUNET_MESH_Tunnel *tunnel, void **tunnel_ctx,
-          const struct GNUNET_PeerIdentity *sender,
-          const struct GNUNET_MessageHeader *message,
-          const struct GNUNET_TRANSPORT_ATS_Information *atsi)
+               const struct GNUNET_PeerIdentity *sender,
+               const struct GNUNET_MessageHeader *message,
+               const struct GNUNET_ATS_Information *atsi)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: Data callback\n");
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
@@ -130,15 +136,15 @@ data_callback (void *cls, struct GNUNET_MESH_Tunnel *tunnel, void **tunnel_ctx,
 static void *
 inbound_tunnel (void *cls, struct GNUNET_MESH_Tunnel *tunnel,
                 const struct GNUNET_PeerIdentity *initiator,
-                const struct GNUNET_TRANSPORT_ATS_Information *atsi)
+                const struct GNUNET_ATS_Information *atsi)
 {
-  unsigned int id = (unsigned int) cls;
+  unsigned int id = *(unsigned int *) cls;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: received incoming tunnel\n");
   if (id != 1)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-        "test: received incoming tunnel on peer 2\n");
+                "test: received incoming tunnel on peer 2\n");
     result = GNUNET_SYSERR;
   }
   return NULL;
@@ -155,17 +161,16 @@ inbound_tunnel (void *cls, struct GNUNET_MESH_Tunnel *tunnel,
  *                   with the tunnel is stored
  */
 static void
-inbound_end (void *cls,
-             const struct GNUNET_MESH_Tunnel * tunnel,
+inbound_end (void *cls, const struct GNUNET_MESH_Tunnel *tunnel,
              void *tunnel_ctx)
 {
-  unsigned int id = (unsigned int) cls;
+  unsigned int id = *(unsigned int *) cls;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: incoming tunnel closed\n");
   if (id != 1)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-        "test: received closing tunnel on peer 2\n");
+                "test: received closing tunnel on peer 2\n");
     result = GNUNET_SYSERR;
   }
 }
@@ -177,12 +182,12 @@ inbound_end (void *cls,
  * @param cls closure
  * @param peer peer identity the tunnel stopped working with
  */
-static void peer_conected (
-    void *cls,
-    const struct GNUNET_PeerIdentity * peer)
+static void
+peer_conected (void *cls, const struct GNUNET_PeerIdentity *peer,
+               const struct GNUNET_ATS_Information *atsi)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: peer connected\n");
-  GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_SECONDS, &do_shutdown, NULL);
+  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &do_shutdown, NULL);
 }
 
 
@@ -193,10 +198,8 @@ static void peer_conected (
  * @param peer peer identity the tunnel was created to, NULL on timeout
  * @param atsi performance data for the connection
  */
-static void peer_disconnected (
-    void *cls,
-    const struct GNUNET_PeerIdentity * peer,
-    const struct GNUNET_TRANSPORT_ATS_Information * atsi)
+static void
+peer_disconnected (void *cls, const struct GNUNET_PeerIdentity *peer)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: peer disconnected\n");
 }
@@ -229,7 +232,7 @@ do_connect_peer_1 (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   test_task = GNUNET_SCHEDULER_NO_TASK;
   mesh_peer_1 = GNUNET_MESH_connect (cfg,       /* configuration */
                                      10,        /* queue size */
-                                     (void *) 1,        /* cls */
+                                     (void *) &one,     /* cls */
                                      &inbound_tunnel,   /* inbound new hndlr */
                                      &inbound_end,      /* inbound end hndlr */
                                      handlers1, /* traffic handlers */
@@ -250,7 +253,7 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 
   mesh_peer_2 = GNUNET_MESH_connect (cfg,       /* configuration */
                                      10,        /* queue size */
-                                     (void *) 2,        /* cls */
+                                     (void *) &two,     /* cls */
                                      &inbound_tunnel,   /* inbound new hndlr */
                                      &inbound_end,      /* inbound end hndlr */
                                      handlers2, /* traffic handlers */
@@ -265,15 +268,13 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: YAY! CONNECTED TO MESH :D\n");
   }
 
-  t = GNUNET_MESH_tunnel_create (mesh_peer_2,
-                                 NULL,
-                                 &peer_conected,
-                                 &peer_disconnected,
-                                 (void *) 2);
-  GNUNET_MESH_peer_request_connect_by_type(t, 1);
-  test_task = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_SECONDS,
-                                           &do_connect_peer_1,
-                                           cfg);
+  t = GNUNET_MESH_tunnel_create (mesh_peer_2, NULL, &peer_conected,
+                                 &peer_disconnected, (void *) &two);
+  GNUNET_MESH_peer_request_connect_by_type (t, 1);
+  test_task =
+      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
+                                    (GNUNET_TIME_UNIT_SECONDS, 5),
+                                    &do_connect_peer_1, cfg);
 }
 
 
@@ -292,7 +293,7 @@ run (void *cls, char *const *args, const char *cfgfile,
 #endif
                     NULL);
   arm_pid =
-      GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm",
+      GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm",
                                "gnunet-service-arm",
 #if VERBOSE_ARM
                                "-L", "DEBUG",