aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-06-01 12:01:20 +0000
committerChristian Grothoff <christian@grothoff.org>2012-06-01 12:01:20 +0000
commit8dd4af4649e304dd4be8d4c6c984f3f5a9481643 (patch)
treefe83c367e9e4482b3c0d63a14aa38180314c652a /src
parent9c9ca63a3ec703c46e6de365599904a64abaa68d (diff)
downloadgnunet-8dd4af4649e304dd4be8d4c6c984f3f5a9481643.tar.gz
gnunet-8dd4af4649e304dd4be8d4c6c984f3f5a9481643.zip
-fixing #2391
Diffstat (limited to 'src')
-rw-r--r--src/transport/gnunet-service-transport_neighbours.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c
index 9636fff6e..c5801685a 100644
--- a/src/transport/gnunet-service-transport_neighbours.c
+++ b/src/transport/gnunet-service-transport_neighbours.c
@@ -2306,11 +2306,12 @@ master_task (void *cls,
2306 struct GNUNET_TIME_Relative delay; 2306 struct GNUNET_TIME_Relative delay;
2307 2307
2308 n->task = GNUNET_SCHEDULER_NO_TASK; 2308 n->task = GNUNET_SCHEDULER_NO_TASK;
2309 delay = GNUNET_TIME_absolute_get_remaining (n->timeout);
2309 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 2310 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
2310 "master task runs for neighbour `%s' in state %d\n", 2311 "master task runs for neighbour `%s' in state %d with timeout in %llu ms\n",
2311 GNUNET_i2s (&n->id), 2312 GNUNET_i2s (&n->id),
2312 n->state); 2313 n->state,
2313 delay = GNUNET_TIME_absolute_get_remaining (n->timeout); 2314 (unsigned long long) delay.rel_value);
2314 switch (n->state) 2315 switch (n->state)
2315 { 2316 {
2316 case S_NOT_CONNECTED: 2317 case S_NOT_CONNECTED:
@@ -2465,8 +2466,16 @@ master_task (void *cls,
2465 GNUNET_break (0); 2466 GNUNET_break (0);
2466 break; 2467 break;
2467 } 2468 }
2468 delay = GNUNET_TIME_relative_min (GNUNET_TIME_absolute_get_remaining (n->keep_alive_time), 2469 if ( (S_CONNECTED_SWITCHING_CONNECT_SENT == n->state) ||
2469 delay); 2470 (S_CONNECTED_SWITCHING_BLACKLIST == n->state) ||
2471 (S_CONNECTED == n->state) )
2472 {
2473 /* if we are *now* in one of these three states, we're sending
2474 keep alive messages, so we need to consider the keepalive
2475 delay, not just the connection timeout */
2476 delay = GNUNET_TIME_relative_min (GNUNET_TIME_absolute_get_remaining (n->keep_alive_time),
2477 delay);
2478 }
2470 if (GNUNET_SCHEDULER_NO_TASK == n->task) 2479 if (GNUNET_SCHEDULER_NO_TASK == n->task)
2471 n->task = GNUNET_SCHEDULER_add_delayed (delay, 2480 n->task = GNUNET_SCHEDULER_add_delayed (delay,
2472 &master_task, 2481 &master_task,