if (NULL == ic)
{
/* didn't expect a response, reconnect */
- GNUNET_PEERINFO_iterate_cancel (ic);
reconnect (h);
return;
}
/* normal end of list of peers, signal end, process next pending request */
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Received end of list of peers from `%s' service\n", "PEERINFO");
- GNUNET_PEERINFO_iterate_cancel (ic);
+ GNUNET_PEERINFO_iterate_cancel (ic);
trigger_transmit (h);
- if (GNUNET_NO == h->in_receive)
+ if ( (GNUNET_NO == h->in_receive) &&
+ (NULL != h->ic_head) )
{
h->in_receive = GNUNET_YES;
GNUNET_CLIENT_receive (h->client, &peerinfo_handler, h,
- GNUNET_TIME_absolute_get_remaining (ic->timeout));
- }
+ GNUNET_TIME_absolute_get_remaining (h->ic_head->timeout));
+ }
if (NULL != cb)
cb (cb_cls, NULL, NULL, NULL);
return;
/**
- * Call a method for each known matching host and change its trust
- * value. The callback method will be invoked once for each matching
- * host and then finally once with a NULL pointer. After that final
- * invocation, the iterator context must no longer be used.
+ * Call a method for each known matching host. The callback method
+ * will be invoked once for each matching host and then finally once
+ * with a NULL pointer. After that final invocation, the iterator
+ * context must no longer be used.
*
* Instead of calling this function with 'peer == NULL' it is often
* better to use 'GNUNET_PEERINFO_notify'.