gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r18726 - gnunet/src/transport
Date: Tue, 20 Dec 2011 17:41:19 +0100

Author: wachs
Date: 2011-12-20 17:41:19 +0100 (Tue, 20 Dec 2011)
New Revision: 18726

Modified:
   gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
fix for mantis 1959
compare addresses and only mark address when addresses match


Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2011-12-20 
16:34:56 UTC (rev 18725)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2011-12-20 
16:41:19 UTC (rev 18726)
@@ -895,9 +895,7 @@
     GNUNET_assert (NULL != n->address);
     if (n->address_state == USED)
     {
-      GST_validation_set_address_use (n->address, n->session,
-                                      GNUNET_NO);
-
+      GST_validation_set_address_use (n->address, n->session, GNUNET_NO);
       GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO);
       n->address_state = UNUSED;
     }
@@ -1246,11 +1244,10 @@
   case S_CONNECTED:
     if (n->address_state == FRESH)
     {
-      GST_validation_set_address_use (cc->address, cc->session,
-                                      GNUNET_YES);
+      n->address_state = USED;
+      GST_validation_set_address_use (cc->address, cc->session, GNUNET_YES);
       GNUNET_ATS_address_update (GST_ats, cc->address, cc->session, NULL, 0);
       GNUNET_ATS_address_in_use (GST_ats, cc->address, cc->session, 
GNUNET_YES);
-      n->address_state = USED;
     }
     break;
   case S_FAST_RECONNECT:
@@ -1266,11 +1263,10 @@
 
     if (n->address_state == FRESH)
     {
-      GST_validation_set_address_use (cc->address, cc->session,
-                                      GNUNET_YES);
+      n->address_state = USED;
+      GST_validation_set_address_use (cc->address, cc->session, GNUNET_YES);
       GNUNET_ATS_address_update (GST_ats, cc->address, cc->session, NULL, 0);
       GNUNET_ATS_address_in_use (GST_ats, cc->address, cc->session, 
GNUNET_YES);
-      n->address_state = USED;
     }
 
     if (n->keepalive_task == GNUNET_SCHEDULER_NO_TASK)
@@ -1432,8 +1428,7 @@
     GNUNET_assert (NULL != n->address);
     if (n->address_state == USED)
     {
-      GST_validation_set_address_use (n->address, n->session,
-                                      GNUNET_NO);
+      GST_validation_set_address_use (n->address, n->session, GNUNET_NO);
       GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO);
       n->address_state = UNUSED;
     }
@@ -1699,8 +1694,7 @@
   {
     if (n->address_state == USED)
     {
-      GST_validation_set_address_use (n->address, n->session,
-                                      GNUNET_NO);
+      GST_validation_set_address_use (n->address, n->session, GNUNET_NO);
       GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_NO);
       n->address_state = UNUSED;
     }
@@ -2339,11 +2333,13 @@
   }
   GNUNET_ATS_address_update (GST_ats, address, session, ats, ats_count);
   GNUNET_assert (NULL != n->address);
-  if (n->address_state == FRESH)
+  if ((n->address_state == FRESH) && (0 == GNUNET_HELLO_address_cmp(address, 
n->address)))
   {
+    n->address_state = USED;
     GST_validation_set_address_use (n->address, n->session, GNUNET_YES);
     GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_YES);
-    n->address_state = USED;
+    if (n->session == NULL)
+      n->session = session;
   }
 
   GST_neighbours_set_incoming_quota (&n->id, n->bandwidth_in);
@@ -2426,11 +2422,13 @@
                      session, address->transport_name, GNUNET_i2s (peer));
   GNUNET_ATS_address_update (GST_ats, address, session, ats, ats_count);
   GNUNET_assert (n->address != NULL);
-  if (n->address_state == FRESH)
+  if ((n->address_state == FRESH) && (0 == GNUNET_HELLO_address_cmp(address, 
n->address)))
   {
+    n->address_state = USED;
     GST_validation_set_address_use (n->address, n->session, GNUNET_YES);
     GNUNET_ATS_address_in_use (GST_ats, n->address, n->session, GNUNET_YES);
-    n->address_state = USED;
+    if (n->session == NULL)
+      n->session = session;
   }
 
   neighbours_connected++;




reply via email to

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