[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34668 - gnunet/src/peerstore
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34668 - gnunet/src/peerstore |
Date: |
Tue, 16 Dec 2014 23:07:27 +0100 |
Author: grothoff
Date: 2014-12-16 23:07:27 +0100 (Tue, 16 Dec 2014)
New Revision: 34668
Modified:
gnunet/src/peerstore/peerstore_api.c
Log:
-must notify client on timeout
Modified: gnunet/src/peerstore/peerstore_api.c
===================================================================
--- gnunet/src/peerstore/peerstore_api.c 2014-12-16 21:49:27 UTC (rev
34667)
+++ gnunet/src/peerstore/peerstore_api.c 2014-12-16 22:07:27 UTC (rev
34668)
@@ -480,13 +480,16 @@
LOG (GNUNET_ERROR_TYPE_DEBUG, "Disconnecting.\n");
if (NULL != h->watches)
{
- GNUNET_CONTAINER_multihashmap_iterate (h->watches, &destroy_watch, NULL);
+ GNUNET_CONTAINER_multihashmap_iterate (h->watches,
+ &destroy_watch,
+ NULL);
GNUNET_CONTAINER_multihashmap_destroy (h->watches);
h->watches = NULL;
}
ic_iter = h->iterate_head;
while (NULL != ic_iter)
{
+ GNUNET_break (0);
ic = ic_iter;
ic_iter = ic_iter->next;
GNUNET_PEERSTORE_iterate_cancel (ic);
@@ -677,14 +680,15 @@
/**
* Callback after MQ envelope is sent
*
- * @param cls a 'struct GNUNET_PEERSTORE_IterateContext *'
+ * @param cls a `struct GNUNET_PEERSTORE_IterateContext *`
*/
static void
iterate_request_sent (void *cls)
{
struct GNUNET_PEERSTORE_IterateContext *ic = cls;
- LOG (GNUNET_ERROR_TYPE_DEBUG, "Iterate request sent to service.\n");
+ LOG (GNUNET_ERROR_TYPE_DEBUG,
+ "Iterate request sent to service.\n");
ic->iterating = GNUNET_YES;
ic->ev = NULL;
}
@@ -693,16 +697,25 @@
/**
* Called when the iterate request is timedout
*
- * @param cls a 'struct GNUNET_PEERSTORE_IterateContext *'
+ * @param cls a `struct GNUNET_PEERSTORE_IterateContext *`
* @param tc Scheduler task context (unused)
*/
static void
-iterate_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+iterate_timeout (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct GNUNET_PEERSTORE_IterateContext *ic = cls;
+ GNUNET_PEERSTORE_Processor callback;
+ void *callback_cls;
ic->timeout_task = GNUNET_SCHEDULER_NO_TASK;
+ callback = ic->callback;
+ callback_cls = ic->callback_cls;
GNUNET_PEERSTORE_iterate_cancel (ic);
+ if (NULL != callback)
+ callback (callback_cls,
+ NULL,
+ _("timeout"));
}
@@ -727,7 +740,9 @@
GNUNET_MQ_send_cancel (ic->ev);
ic->ev = NULL;
}
- GNUNET_CONTAINER_DLL_remove (ic->h->iterate_head, ic->h->iterate_tail, ic);
+ GNUNET_CONTAINER_DLL_remove (ic->h->iterate_head,
+ ic->h->iterate_tail,
+ ic);
GNUNET_free (ic);
}
else
@@ -751,7 +766,8 @@
GNUNET_PEERSTORE_iterate (struct GNUNET_PEERSTORE_Handle *h,
const char *sub_system,
const struct GNUNET_PeerIdentity *peer,
- const char *key, struct GNUNET_TIME_Relative timeout,
+ const char *key,
+ struct GNUNET_TIME_Relative timeout,
GNUNET_PEERSTORE_Processor callback,
void *callback_cls)
{
@@ -768,7 +784,9 @@
ic->ev = ev;
ic->h = h;
ic->iterating = GNUNET_NO;
- GNUNET_CONTAINER_DLL_insert_tail (h->iterate_head, h->iterate_tail, ic);
+ GNUNET_CONTAINER_DLL_insert_tail (h->iterate_head,
+ h->iterate_tail,
+ ic);
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Sending an iterate request for sub system `%s'\n", sub_system);
GNUNET_MQ_notify_sent (ev, &iterate_request_sent, ic);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34668 - gnunet/src/peerstore,
gnunet <=