gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r23973 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r23973 - gnunet/src/transport
Date: Mon, 24 Sep 2012 12:05:34 +0200

Author: wachs
Date: 2012-09-24 12:05:34 +0200 (Mon, 24 Sep 2012)
New Revision: 23973

Modified:
   gnunet/src/transport/plugin_transport_http_client.c
Log:
 hunting bugs

Modified: gnunet/src/transport/plugin_transport_http_client.c
===================================================================
--- gnunet/src/transport/plugin_transport_http_client.c 2012-09-24 09:53:13 UTC 
(rev 23972)
+++ gnunet/src/transport/plugin_transport_http_client.c 2012-09-24 10:05:34 UTC 
(rev 23973)
@@ -170,6 +170,11 @@
   int put_tmp_disconnected;
 
   /**
+   * We received data to send while disconnecting, reconnect immediately
+   */
+  int put_reconnect_required;
+
+  /**
    * Client receive handle
    */
   void *client_get;
@@ -468,6 +473,7 @@
   if (GNUNET_YES == s->put_tmp_disconnecting)
   {
     /* PUT connection is currently getting disconnected */
+    s->put_reconnect_required = GNUNET_YES;
     GNUNET_break (0);
     return msgbuf_size;
   }
@@ -1076,6 +1082,17 @@
             s->put_tmp_disconnecting = GNUNET_NO;
             s->put_tmp_disconnected = GNUNET_YES;
             s->client_put = NULL;
+
+            /*
+             * Handling a rare case:
+             * plugin_send was called during temporary put disconnect,
+             * reconnect required after connection was disconnected
+             */
+            if (GNUNET_YES == s->put_reconnect_required)
+            {
+                s->put_reconnect_required = GNUNET_NO;
+                client_connect_put(s);
+            }
         }
         if (easy_h == s->client_get)
         {




reply via email to

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