gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r32695 - gnunet/src/transport
Date: Wed, 19 Mar 2014 16:07:21 +0100

Author: wachs
Date: 2014-03-19 16:07:21 +0100 (Wed, 19 Mar 2014)
New Revision: 32695

Modified:
   gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
unsetting primary address on when free'ing address for monitoring


Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2014-03-19 
14:35:17 UTC (rev 32694)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2014-03-19 
15:07:21 UTC (rev 32695)
@@ -578,6 +578,8 @@
     GNUNET_ATS_address_in_use (GST_ats, na->address, na->session, GNUNET_NO);
   }
 
+  na->bandwidth_in = GNUNET_BANDWIDTH_value_init (0);
+  na->bandwidth_out = GNUNET_BANDWIDTH_value_init (0);
   na->ats_active = GNUNET_NO;
   na->keep_alive_nonce = 0;
   if (NULL != na->address)
@@ -799,8 +801,6 @@
       n->primary_address.bandwidth_out);
 }
 
-#if 0
-TODO: Implement this
 /**
  * Clear the primary address of a neighbour since this primary address is not
  * valid anymore and notify monitoring about it
@@ -810,10 +810,18 @@
 static void
 unset_primary_address (struct NeighbourMapEntry *n)
 {
+  /* Unset primary address */
+  free_address (&n->primary_address);
 
+  /* Notify monitoring about it */
+  neighbour_change_cb (callback_cls,
+      &n->id,
+      NULL,
+      n->state, n->timeout,
+      n->primary_address.bandwidth_in,
+      n->primary_address.bandwidth_out);
 }
 
-#endif
 
 
 /**
@@ -854,6 +862,7 @@
                           GNUNET_NO);
     disconnect_notify_cb (callback_cls, &n->id);
   }
+
   /* Mark peer as disconnected */
   set_state (n, GNUNET_TRANSPORT_PS_DISCONNECT_FINISHED);
 
@@ -863,7 +872,7 @@
     backup_primary = NULL;
 
   /* free addresses and mark as unused */
-  free_address (&n->primary_address);
+  unset_primary_address (n);
   free_address (&n->alternative_address);
 
   /* cut all transport-level connection for this peer */
@@ -1644,8 +1653,10 @@
     GNUNET_ATS_address_destroyed (GST_ats, na->address, NULL);
 
     /* Remove address and request and additional one */
-    /* TODO */
+    unset_primary_address (n);
 
+    set_state_and_timeout (n, GNUNET_TRANSPORT_PS_INIT_ATS,
+        GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
     return;
   }
 
@@ -3420,7 +3431,7 @@
                 GST_plugins_a2s (n->primary_address.address), 
n->primary_address.session,
                 GNUNET_i2s (peer));
     GNUNET_ATS_address_destroyed (GST_ats, n->primary_address.address, NULL);
-    free_address (&n->primary_address);
+    unset_primary_address (n);
     set_state_and_timeout (n, GNUNET_TRANSPORT_PS_INIT_ATS,
         GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
     break;
@@ -3433,9 +3444,9 @@
     free_neighbour (n, GNUNET_NO);
     return GNUNET_YES;
   case GNUNET_TRANSPORT_PS_CONNECTED:
+    unset_primary_address (n);
     set_state_and_timeout (n, GNUNET_TRANSPORT_PS_RECONNECT_ATS,
         GNUNET_TIME_relative_to_absolute (ATS_RESPONSE_TIMEOUT));
-    free_address (&n->primary_address);
     break;
   case GNUNET_TRANSPORT_PS_RECONNECT_ATS:
     /* we don't have an address, how can it go down? */




reply via email to

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