gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r29704 - gnunet/src/namestore


From: gnunet
Subject: [GNUnet-SVN] r29704 - gnunet/src/namestore
Date: Mon, 30 Sep 2013 12:45:05 +0200

Author: grothoff
Date: 2013-09-30 12:45:05 +0200 (Mon, 30 Sep 2013)
New Revision: 29704

Modified:
   gnunet/src/namestore/gnunet-service-namestore.c
   gnunet/src/namestore/namestore_api.c
Log:
-fixing namestore to not disconnect on empty iteration result --- and namestore 
API to better survive disconnect

Modified: gnunet/src/namestore/gnunet-service-namestore.c
===================================================================
--- gnunet/src/namestore/gnunet-service-namestore.c     2013-09-30 10:20:56 UTC 
(rev 29703)
+++ gnunet/src/namestore/gnunet-service-namestore.c     2013-09-30 10:45:05 UTC 
(rev 29704)
@@ -844,7 +844,7 @@
                                                &ztnr_msg.gns_header.header,
                                                GNUNET_NO);
   }
-  GNUNET_SERVER_receive_done (client, ztn_ctx.success);
+  GNUNET_SERVER_receive_done (client, GNUNET_OK);
 }
 
 
@@ -1176,7 +1176,7 @@
 
 
 /**
- * Handles a 'GNUNET_MESSAGE_TYPE_NAMESTORE_MONITOR_START' message
+ * Handles a #GNUNET_MESSAGE_TYPE_NAMESTORE_MONITOR_START message
  *
  * @param cls unused
  * @param client GNUNET_SERVER_Client sending the message

Modified: gnunet/src/namestore/namestore_api.c
===================================================================
--- gnunet/src/namestore/namestore_api.c        2013-09-30 10:20:56 UTC (rev 
29703)
+++ gnunet/src/namestore/namestore_api.c        2013-09-30 10:45:05 UTC (rev 
29704)
@@ -226,6 +226,11 @@
   GNUNET_SCHEDULER_TaskIdentifier reconnect_task;
 
   /**
+   * Delay introduced before we reconnect.
+   */
+  struct GNUNET_TIME_Relative reconnect_delay;
+
+  /**
    * Should we reconnect to service due to some serious error?
    */
   int reconnect;
@@ -858,6 +863,7 @@
                                               GNUNET_TIME_UNIT_FOREVER_REL,
                                               GNUNET_NO, 
&transmit_message_to_namestore,
                                               h);
+  GNUNET_break (NULL != h->th);
 }
 
 
@@ -901,11 +907,19 @@
 static void
 force_reconnect (struct GNUNET_NAMESTORE_Handle *h)
 {
+  if (NULL != h->th)
+  {
+    GNUNET_CLIENT_notify_transmit_ready_cancel (h->th);
+    h->th = NULL;
+  }
   h->reconnect = GNUNET_NO;
   GNUNET_CLIENT_disconnect (h->client);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Reconnecting to namestore\n");
   h->is_receiving = GNUNET_NO;
   h->client = NULL;
-  h->reconnect_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+  h->reconnect_delay = GNUNET_TIME_STD_BACKOFF (h->reconnect_delay);
+  h->reconnect_task = GNUNET_SCHEDULER_add_delayed (h->reconnect_delay,
                                                    &reconnect_task,
                                                    h);
 }
@@ -958,6 +972,11 @@
 
   LOG (GNUNET_ERROR_TYPE_DEBUG, "Cleaning up\n");
   GNUNET_assert (NULL != h);
+  if (NULL != h->th)
+  {
+    GNUNET_CLIENT_notify_transmit_ready_cancel (h->th);
+    h->th = NULL;
+  }
   while (NULL != (p = h->pending_head))
   {
     GNUNET_CONTAINER_DLL_remove (h->pending_head, h->pending_tail, p);
@@ -1041,7 +1060,7 @@
        "NAMESTORE_BLOCK_CACHE", 
        (unsigned int) msg_size);
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
-  do_transmit(h);
+  do_transmit (h);
   return qe;
 }
 
@@ -1123,7 +1142,7 @@
        "NAMESTORE_RECORD_STORE", label, msg_size,
        rd_count);
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
-  do_transmit(h);
+  do_transmit (h);
   return qe;
 }
 
@@ -1172,7 +1191,7 @@
   msg->gns_header.r_id = htonl (rid);
   msg->query = *derived_hash;
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
-  do_transmit(h);
+  do_transmit (h);
   return qe;
 }
 
@@ -1225,7 +1244,7 @@
 
   /* transmit message */
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
-  do_transmit(h);
+  do_transmit (h);
   return qe;
 }
 
@@ -1279,7 +1298,7 @@
   if (NULL != zone)
     msg->zone = *zone;
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
-  do_transmit(h);
+  do_transmit (h);
   return it;
 }
 
@@ -1311,7 +1330,7 @@
        "Sending `%s' message\n", 
        "ZONE_ITERATION_NEXT");
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
-  do_transmit(h);
+  do_transmit (h);
 }
 
 
@@ -1344,7 +1363,7 @@
              "Sending `%s' message\n", 
              "ZONE_ITERATION_STOP");
   GNUNET_CONTAINER_DLL_insert_tail (h->pending_head, h->pending_tail, pe);
-  do_transmit(h);
+  do_transmit (h);
   GNUNET_free (it);
 }
 




reply via email to

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