gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r21691 - gnunet/src/transport
Date: Fri, 1 Jun 2012 14:01:20 +0200

Author: grothoff
Date: 2012-06-01 14:01:20 +0200 (Fri, 01 Jun 2012)
New Revision: 21691

Modified:
   gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
-fixing #2391

Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c  2012-06-01 
11:34:21 UTC (rev 21690)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c  2012-06-01 
12:01:20 UTC (rev 21691)
@@ -2306,11 +2306,12 @@
   struct GNUNET_TIME_Relative delay;
 
   n->task = GNUNET_SCHEDULER_NO_TASK;
+  delay = GNUNET_TIME_absolute_get_remaining (n->timeout);  
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-             "master task runs for neighbour `%s' in state %d\n",
+             "master task runs for neighbour `%s' in state %d with timeout in 
%llu ms\n",
              GNUNET_i2s (&n->id),
-             n->state);
-  delay = GNUNET_TIME_absolute_get_remaining (n->timeout);  
+             n->state,
+             (unsigned long long) delay.rel_value);
   switch (n->state)
   {
   case S_NOT_CONNECTED:
@@ -2465,8 +2466,16 @@
     GNUNET_break (0);
     break;  
   }
-  delay = GNUNET_TIME_relative_min (GNUNET_TIME_absolute_get_remaining 
(n->keep_alive_time),
-                                   delay);
+  if ( (S_CONNECTED_SWITCHING_CONNECT_SENT == n->state) ||
+       (S_CONNECTED_SWITCHING_BLACKLIST == n->state) ||
+       (S_CONNECTED == n->state) )    
+  {
+    /* if we are *now* in one of these three states, we're sending
+       keep alive messages, so we need to consider the keepalive
+       delay, not just the connection timeout */
+    delay = GNUNET_TIME_relative_min (GNUNET_TIME_absolute_get_remaining 
(n->keep_alive_time),
+                                     delay);
+  }
   if (GNUNET_SCHEDULER_NO_TASK == n->task)
     n->task = GNUNET_SCHEDULER_add_delayed (delay,
                                            &master_task,




reply via email to

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