+ }
+#if DEBUG_PEERINFO
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Received %u bytes of `%s' information about peer `%s' from `%s' service\n",
+ (hello == NULL) ? 0 : (unsigned int) GNUNET_HELLO_size (hello),
+ "HELLO", GNUNET_i2s (&im->peer), "PEERINFO");
+#endif
+ ic->h->in_receive = GNUNET_YES;
+ if (ic->callback != NULL)
+ ic->callback (ic->callback_cls, &im->peer, hello, NULL);
+ GNUNET_CLIENT_receive (ic->h->client, &peerinfo_handler, ic,
+ GNUNET_TIME_absolute_get_remaining (ic->timeout));
+}
+
+
+/**
+ * We've transmitted the iteration request. Now get ready to process
+ * the results (or handle transmission error).
+ *
+ * @param cls the 'struct GNUNET_PEERINFO_IteratorContext'
+ * @param transmit_success GNUNET_OK if transmission worked
+ */
+static void
+iterator_start_receive (void *cls, int transmit_success)
+{
+ struct GNUNET_PEERINFO_IteratorContext *ic = cls;
+
+ if (GNUNET_OK != transmit_success)
+ {
+ if (ic->timeout_task != GNUNET_SCHEDULER_NO_TASK)