convert fs publish to MQ
[oweals/gnunet.git] / src / peerstore / test_peerstore_api_iterate.c
index 6881894bdae89eed655a8a72c4d74e23ee11199e..83a6bf7b73e060c6aa398108f64827447740ef5f 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C)
+     Copyright (C)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 /**
  * @file peerstore/test_peerstore_api_iterate.c
@@ -29,6 +29,7 @@
 static int ok = 1;
 
 static struct GNUNET_PEERSTORE_Handle *h;
+static struct GNUNET_PEERSTORE_IterateContext *ic;
 
 static char *ss = "test_peerstore_api_iterate";
 static struct GNUNET_PeerIdentity p1;
@@ -40,60 +41,66 @@ static char *val = "test_peerstore_api_iterate_val";
 static int count = 0;
 
 
-static int
+static void
 iter3_cb (void *cls, const struct GNUNET_PEERSTORE_Record *record,
           const char *emsg)
 {
   if (NULL != emsg)
-    return GNUNET_NO;
+  {
+    GNUNET_PEERSTORE_iterate_cancel (ic);
+    return;
+  }
   if (NULL != record)
   {
     count++;
-    return GNUNET_YES;
+    return;
   }
   GNUNET_assert (count == 3);
   ok = 0;
   GNUNET_PEERSTORE_disconnect (h, GNUNET_NO);
   GNUNET_SCHEDULER_shutdown ();
-  return GNUNET_YES;
 }
 
 
-static int
+static void
 iter2_cb (void *cls, const struct GNUNET_PEERSTORE_Record *record,
           const char *emsg)
 {
   if (NULL != emsg)
-    return GNUNET_NO;
+  {
+    GNUNET_PEERSTORE_iterate_cancel (ic);
+    return;
+  }
   if (NULL != record)
   {
     count++;
-    return GNUNET_YES;
+    return;
   }
   GNUNET_assert (count == 2);
   count = 0;
-  GNUNET_PEERSTORE_iterate (h, ss, NULL, NULL, GNUNET_TIME_UNIT_FOREVER_REL,
+  ic = GNUNET_PEERSTORE_iterate (h, ss, NULL, NULL, GNUNET_TIME_UNIT_FOREVER_REL,
                             iter3_cb, NULL);
-  return GNUNET_YES;
 }
 
 
-static int
+static void
 iter1_cb (void *cls, const struct GNUNET_PEERSTORE_Record *record,
           const char *emsg)
 {
   if (NULL != emsg)
-    return GNUNET_NO;
+  {
+    GNUNET_PEERSTORE_iterate_cancel (ic);
+    return;
+  }
   if (NULL != record)
   {
     count++;
-    return GNUNET_YES;
+    return;
   }
   GNUNET_assert (count == 1);
   count = 0;
-  GNUNET_PEERSTORE_iterate (h, ss, &p1, NULL, GNUNET_TIME_UNIT_FOREVER_REL,
+  ic = GNUNET_PEERSTORE_iterate (h, ss, &p1, NULL, GNUNET_TIME_UNIT_FOREVER_REL,
                             iter2_cb, NULL);
-  return GNUNET_YES;
 }
 
 
@@ -114,7 +121,7 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
   GNUNET_PEERSTORE_store (h, ss, &p2, k3, val, strlen (val) + 1,
                           GNUNET_TIME_UNIT_FOREVER_ABS,
                           GNUNET_PEERSTORE_STOREOPTION_REPLACE, NULL, NULL);
-  GNUNET_PEERSTORE_iterate (h, ss, &p1, k1, GNUNET_TIME_UNIT_FOREVER_REL,
+  ic = GNUNET_PEERSTORE_iterate (h, ss, &p1, k1, GNUNET_TIME_UNIT_FOREVER_REL,
                             iter1_cb, NULL);
 }