gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r33877 - gnunet/src/transport
Date: Fri, 27 Jun 2014 11:00:13 +0200

Author: wachs
Date: 2014-06-27 11:00:12 +0200 (Fri, 27 Jun 2014)
New Revision: 33877

Modified:
   gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
fixes for neighbor:

- when alternative address is terminated always free address
- when primary address is disconnected during switch, go to "RECONNECT_SENT"
and not RECONNECT_ATS_INIT



Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2014-06-26 
23:49:06 UTC (rev 33876)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2014-06-27 
09:00:12 UTC (rev 33877)
@@ -3285,12 +3285,12 @@
     return GNUNET_NO; /* can't affect us */
   if (session != n->primary_address.session)
   {
+    /* Free alternative address */
     if (session == n->alternative_address.session)
     {
       if ( (GNUNET_TRANSPORT_PS_CONNECTED_SWITCHING_CONNECT_SENT == n->state) )
         set_state (n, GNUNET_TRANSPORT_PS_CONNECTED);
-      else
-        free_address (&n->alternative_address);
+      free_address (&n->alternative_address);
     }
     return GNUNET_NO; /* doesn't affect us further */
   }
@@ -3357,15 +3357,26 @@
     /* primary went down while we were waiting for CONNECT_ACK on secondary;
        secondary as primary */
 
+    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+        "Connection `%s' %p to peer `%s' was terminated while switching, "
+        "switching to alternative address `%s' %p\n",
+        GST_plugins_a2s (n->primary_address.address),
+        n->primary_address.session,
+        GNUNET_i2s (peer),
+        GST_plugins_a2s (n->alternative_address.address),
+        n->alternative_address.session);
+
     /* Destroy the inbound address since it cannot be used */
     if (GNUNET_YES
         == GNUNET_HELLO_address_check_option (n->primary_address.address,
             GNUNET_HELLO_ADDRESS_INFO_INBOUND))
       GNUNET_ATS_address_destroyed (GST_ats, n->primary_address.address, NULL);
     free_address (&n->primary_address);
+
+
     n->primary_address = n->alternative_address;
     memset (&n->alternative_address, 0, sizeof (struct NeighbourAddress));
-    set_state_and_timeout (n, GNUNET_TRANSPORT_PS_RECONNECT_ATS,
+    set_state_and_timeout (n, GNUNET_TRANSPORT_PS_RECONNECT_SENT,
         GNUNET_TIME_relative_to_absolute (FAST_RECONNECT_TIMEOUT));
     break;
   case GNUNET_TRANSPORT_PS_DISCONNECT:




reply via email to

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