From d97ae17cbba307f8261c7b223daa0fec2b57d464 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 1 Jun 2011 15:37:23 +0000 Subject: [PATCH] fix --- src/core/core_api.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/core/core_api.c b/src/core/core_api.c index d0dc892cd..52f5d9258 100644 --- a/src/core/core_api.c +++ b/src/core/core_api.c @@ -488,6 +488,17 @@ reconnect_later (struct GNUNET_CORE_Handle *h) struct PeerRecord *pr; GNUNET_assert (h->reconnect_task == GNUNET_SCHEDULER_NO_TASK); + if (h->client != NULL) + { + GNUNET_CLIENT_disconnect (h->client, GNUNET_NO); + h->client = NULL; + h->cth = NULL; + } + h->currently_down = GNUNET_YES; + GNUNET_assert (h->reconnect_task == GNUNET_SCHEDULER_NO_TASK); + h->reconnect_task = GNUNET_SCHEDULER_add_delayed (h->retry_backoff, + &reconnect_task, + h); while (NULL != (cm = h->control_pending_head)) { GNUNET_CONTAINER_DLL_remove (h->control_pending_head, @@ -499,24 +510,13 @@ reconnect_later (struct GNUNET_CORE_Handle *h) cm->cont (cm->cont_cls, GNUNET_NO); GNUNET_free (cm); } - if (h->client != NULL) - { - GNUNET_CLIENT_disconnect (h->client, GNUNET_NO); - h->client = NULL; - h->cth = NULL; - GNUNET_CONTAINER_multihashmap_iterate (h->peers, - &disconnect_and_free_peer_entry, - h); - } + GNUNET_CONTAINER_multihashmap_iterate (h->peers, + &disconnect_and_free_peer_entry, + h); while (NULL != (pr = h->ready_peer_head)) GNUNET_CONTAINER_DLL_remove (h->ready_peer_head, h->ready_peer_tail, pr); - h->currently_down = GNUNET_YES; - GNUNET_assert (h->reconnect_task == GNUNET_SCHEDULER_NO_TASK); - h->reconnect_task = GNUNET_SCHEDULER_add_delayed (h->retry_backoff, - &reconnect_task, - h); GNUNET_assert (h->control_pending_head == NULL); h->retry_backoff = GNUNET_TIME_relative_min (GNUNET_TIME_UNIT_SECONDS, h->retry_backoff); -- 2.25.1