stuff
[oweals/gnunet.git] / src / core / test_core_api.c
index c931fccc2395520da425a396eb60a18f2a6d0f69..78d6b7fe1e18a37ab9923ce0a11d579d629b83fa 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2009 Christian Grothoff (and other contributing authors)
+     (C) 2009, 2010 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
 #include "gnunet_scheduler_lib.h"
 #include "gnunet_transport_service.h"
 
-#define VERBOSE GNUNET_YES
+#define VERBOSE GNUNET_NO
 
 #define START_ARM GNUNET_YES
 
-
 /**
  * How long until we give up on transmitting the message?
  */
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 6)
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60)
 
 #define MTYPE 12345
 
@@ -53,6 +52,7 @@ struct PeerContext
   struct GNUNET_PeerIdentity id;   
   struct GNUNET_TRANSPORT_Handle *th;
   struct GNUNET_MessageHeader *hello;
+  int connect_status;
 #if START_ARM
   pid_t arm_pid;
 #endif
@@ -91,6 +91,9 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 static void
 terminate_task_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
+#if VERBOSE
+  fprintf(stderr, "ENDING ANGRILY %u\n", ok);
+#endif
   GNUNET_break (0);
   GNUNET_CORE_disconnect (p1.ch);
   GNUNET_CORE_disconnect (p2.ch);
@@ -108,7 +111,9 @@ connect_notify (void *cls,
                struct GNUNET_TIME_Relative latency,
                uint32_t distance)
 {
-  GNUNET_assert ((ok == 5) || (ok == 6));
+  struct PeerContext *pc = cls;
+  GNUNET_assert (pc->connect_status == 0);
+  pc->connect_status = 1;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Encrypted connection established to peer `%4s'\n",
               GNUNET_i2s (peer));
@@ -119,6 +124,8 @@ static void
 disconnect_notify (void *cls,
                    const struct GNUNET_PeerIdentity *peer)
 {
+  struct PeerContext *pc = cls;
+  pc->connect_status = 0;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Encrypted connection to `%4s' cut\n", GNUNET_i2s (peer));
 }
@@ -192,7 +199,7 @@ transmit_ready (void *cls, size_t size, void *buf)
   m->size = htons (sizeof (struct GNUNET_MessageHeader));
   err_task = 
     GNUNET_SCHEDULER_add_delayed (sched,
-                                 TIMEOUT, &terminate_task_error, NULL);
+        GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 120), &terminate_task_error, NULL);
 
   return sizeof (struct GNUNET_MessageHeader);
 }
@@ -238,12 +245,18 @@ init_notify (void *cls,
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                   "Asking core (1) for transmission to peer `%4s'\n",
                   GNUNET_i2s (&p2.id));
-      GNUNET_CORE_notify_transmit_ready (p1.ch,
+
+      if (NULL == GNUNET_CORE_notify_transmit_ready (p1.ch,
                                          0,
-                                         TIMEOUT,
+                                         GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 45),
                                          &p2.id,
                                          sizeof (struct GNUNET_MessageHeader),
-                                         &transmit_ready, &p1);
+                                         &transmit_ready, &p1))
+        {
+          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                      "RECEIVED NULL when asking core (1) for transmission to peer `%4s'\n",
+                      GNUNET_i2s (&p2.id));
+        }
 
     }
 }
@@ -280,7 +293,7 @@ setup_peer (struct PeerContext *p, const char *cfgname)
 {
   p->cfg = GNUNET_CONFIGURATION_create ();
 #if START_ARM
-  p->arm_pid = GNUNET_OS_start_process ("gnunet-service-arm",
+  p->arm_pid = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm",
                                         "gnunet-service-arm",
 #if VERBOSE
                                         "-L", "DEBUG",