convert fs publish to MQ
[oweals/gnunet.git] / src / peerstore / test_peerstore_api_iterate.c
index 5952d45d17db7dec8a27a3f70b262c0cb8eb6d07..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,63 +41,66 @@ static char *val = "test_peerstore_api_iterate_val";
 static int count = 0;
 
 
-static int
-iter3_cb (void *cls,
-          const struct GNUNET_PEERSTORE_Record *record,
+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
-iter2_cb (void *cls,
-          const struct GNUNET_PEERSTORE_Record *record,
+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
-iter1_cb (void *cls,
-          const struct GNUNET_PEERSTORE_Record *record,
+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;
 }
 
 
@@ -117,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);
 }