gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r15843 - gnunet/src/transport
Date: Mon, 4 Jul 2011 15:48:08 +0200

Author: wachs
Date: 2011-07-04 15:48:08 +0200 (Mon, 04 Jul 2011)
New Revision: 15843

Modified:
   gnunet/src/transport/gnunet-service-transport.c
Log:
fixed: do not disconnect from neighbour if an address validations fails but 
other validations are still pending


Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2011-07-04 12:13:59 UTC 
(rev 15842)
+++ gnunet/src/transport/gnunet-service-transport.c     2011-07-04 13:48:08 UTC 
(rev 15843)
@@ -2708,11 +2708,25 @@
                  "Session was never marked as ready for peer `%4s'\n", 
                  GNUNET_i2s(peer));
 #endif
+
+      int validations_pending = GNUNET_CONTAINER_multihashmap_contains 
(validation_map, &peer->hashPubKey);
+
+      /* No session was marked as ready, but we have pending validations so do 
not disconnect from neighbour */
+      if (validations_pending ==GNUNET_YES)
+        {
+#if DEBUG_TRANSPORT
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "Not disconnecting from peer `%4s due to pending address 
validations\n", GNUNET_i2s(peer));
+#endif
+        return;
+        }
+
       //FIXME: This conflicts with inbound tcp connections and tcp nat ... 
debugging in progress
       GNUNET_STATISTICS_update (stats,
                                 gettext_noop ("# disconnects due to unready 
session"),
                                 1,
                                 GNUNET_NO);
+
       disconnect_neighbour (nl, GNUNET_YES);
       return; /* was never marked as connected */
     }
@@ -5110,6 +5124,7 @@
               "Disconnecting from `%4s'\n",
              GNUNET_i2s (&n->id));
 #endif
+
   /* remove n from neighbours list */
   nprev = NULL;
   npos = neighbours;




reply via email to

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