aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-07-19 12:49:02 +0000
committerChristian Grothoff <christian@grothoff.org>2010-07-19 12:49:02 +0000
commit13121a349efdc9529d4c6c8590a8fbed0f34ce54 (patch)
treeb7d4235ef6b8ce9b7604f581c857d87e9985e9a5 /src/core
parentdfc745e0e977a20de99a88958f9baae6c850cd53 (diff)
downloadgnunet-13121a349efdc9529d4c6c8590a8fbed0f34ce54.tar.gz
gnunet-13121a349efdc9529d4c6c8590a8fbed0f34ce54.zip
fast timeout on disconnect
Diffstat (limited to 'src/core')
-rw-r--r--src/core/gnunet-service-core.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c
index 8cd598e83..52724e578 100644
--- a/src/core/gnunet-service-core.c
+++ b/src/core/gnunet-service-core.c
@@ -3717,6 +3717,7 @@ handle_transport_notify_disconnect (void *cls,
3717{ 3717{
3718 struct DisconnectNotifyMessage cnm; 3718 struct DisconnectNotifyMessage cnm;
3719 struct Neighbour *n; 3719 struct Neighbour *n;
3720 struct GNUNET_TIME_Relative left;
3720 3721
3721#if DEBUG_CORE 3722#if DEBUG_CORE
3722 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 3723 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -3741,6 +3742,15 @@ handle_transport_notify_disconnect (void *cls,
3741 gettext_noop ("# peers connected (transport)"), 3742 gettext_noop ("# peers connected (transport)"),
3742 -1, 3743 -1,
3743 GNUNET_NO); 3744 GNUNET_NO);
3745 if (n->dead_clean_task != GNUNET_SCHEDULER_NO_TASK)
3746 GNUNET_SCHEDULER_cancel (sched,
3747 n->dead_clean_task);
3748 left = GNUNET_CONSTANTS_DISCONNECT_SESSION_TIMEOUT;
3749 n->last_activity = GNUNET_TIME_absolute_subtract (GNUNET_TIME_absolute_get (), left);
3750 n->dead_clean_task = GNUNET_SCHEDULER_add_delayed (sched,
3751 left,
3752 &consider_free_task,
3753 n);
3744} 3754}
3745 3755
3746 3756