even longer timeout, still timing out on hostkey generation (sparcbot)
[oweals/gnunet.git] / src / peerinfo / test_peerinfo_api.c
index 0b5230eb6c5421b9a45c55c633e5150b960dd816..34655c8936553f1bb9b79b7ae0e04b2dfdcaf9eb 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
@@ -40,13 +40,17 @@ static struct GNUNET_SCHEDULER_Handle *sched;
 
 static const struct GNUNET_CONFIGURATION_Handle *cfg;
 
+static struct GNUNET_PEERINFO_IteratorContext *ic;
+
+static struct GNUNET_PEERINFO_Handle *h;
+
 static unsigned int retries;
 
 static int
 check_it (void *cls,
           const char *tname,
           struct GNUNET_TIME_Absolute expiration,
-          const void *addr, size_t addrlen)
+          const void *addr, uint16_t addrlen)
 {
   unsigned int *agc = cls;
 
@@ -89,7 +93,7 @@ add_peer ()
   memset (&pkey, 32, sizeof (pkey));
   GNUNET_CRYPTO_hash (&pkey, sizeof (pkey), &pid.hashPubKey);
   h2 = GNUNET_HELLO_create (&pkey, &address_generator, &agc);
-  GNUNET_PEERINFO_add_peer (cfg, sched, &pid, h2);
+  GNUNET_PEERINFO_add_peer (h, h2);
   GNUNET_free (h2);
 
 }
@@ -98,35 +102,34 @@ add_peer ()
 static void
 process (void *cls,
          const struct GNUNET_PeerIdentity *peer,
-         const struct GNUNET_HELLO_Message *hello, uint32_t trust)
+         const struct GNUNET_HELLO_Message *hello)
 {
   int *ok = cls;
   unsigned int agc;
 
   if (peer == NULL)
     {
+      ic = NULL;
       if ( (3 == *ok) &&
-          (retries < 5) )
+          (retries < 50) )
        {
          /* try again */
          retries++;      
          add_peer ();
-         GNUNET_PEERINFO_iterate (cfg,
-                                  sched,
-                                  NULL,
-                                  0,
-                                  GNUNET_TIME_relative_multiply
-                                  (GNUNET_TIME_UNIT_SECONDS, 15), 
-                                  &process, cls);
+         ic = GNUNET_PEERINFO_iterate (h,
+                                       NULL,
+                                       GNUNET_TIME_relative_multiply
+                                       (GNUNET_TIME_UNIT_SECONDS, 15), 
+                                       &process, cls);
          return;
        }
       GNUNET_assert (peer == NULL);
       GNUNET_assert (2 == *ok);
-      GNUNET_assert (trust == 0);
+      GNUNET_PEERINFO_disconnect (h);
+      h = NULL;
       *ok = 0;
       return;
     }
-
   if (hello != NULL)
     {
       GNUNET_assert (3 == *ok);
@@ -147,13 +150,14 @@ run (void *cls,
 {
   sched = s;
   cfg = c;
+  h = GNUNET_PEERINFO_connect (sched, cfg);
+  GNUNET_assert (h != NULL);
   add_peer ();
-  GNUNET_PEERINFO_iterate (cfg,
-                           sched,
-                           NULL,
-                           0,
-                           GNUNET_TIME_relative_multiply
-                           (GNUNET_TIME_UNIT_SECONDS, 15), &process, cls);
+  ic = GNUNET_PEERINFO_iterate (h,
+                               NULL,
+                               GNUNET_TIME_relative_multiply
+                               (GNUNET_TIME_UNIT_SECONDS, 15),
+                               &process, cls);
 }
 
 
@@ -173,7 +177,7 @@ check ()
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
-  pid = GNUNET_OS_start_process ("gnunet-service-peerinfo",
+  pid = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-peerinfo",
                                  "gnunet-service-peerinfo",
 #if DEBUG_PEERINFO
                                  "-L", "DEBUG",
@@ -205,7 +209,7 @@ main (int argc, char *argv[])
 #endif
                     NULL);
   ret = check ();
-  GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-peerinfo");
+  GNUNET_DISK_directory_remove ("/tmp/test-gnunet-peerinfo");
   return ret;
 }