gnunet-svn
[Top][All Lists]
Advanced

[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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]