aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-06-01 15:28:40 +0000
committerChristian Grothoff <christian@grothoff.org>2011-06-01 15:28:40 +0000
commit85c91cf16bcb28522945d27ec1fb52477b603bef (patch)
tree4f7f1a9bc41260c8c5a868286a30e7db069156e4 /src/core
parentfb3c8466ece5cfca78b96331d69549de10636ac1 (diff)
downloadgnunet-85c91cf16bcb28522945d27ec1fb52477b603bef.tar.gz
gnunet-85c91cf16bcb28522945d27ec1fb52477b603bef.zip
fix
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core_api.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/core/core_api.c b/src/core/core_api.c
index 3dfc193dd..350a5129d 100644
--- a/src/core/core_api.c
+++ b/src/core/core_api.c
@@ -488,6 +488,17 @@ reconnect_later (struct GNUNET_CORE_Handle *h)
488 struct PeerRecord *pr; 488 struct PeerRecord *pr;
489 489
490 GNUNET_assert (h->reconnect_task == GNUNET_SCHEDULER_NO_TASK); 490 GNUNET_assert (h->reconnect_task == GNUNET_SCHEDULER_NO_TASK);
491 while (NULL != (cm = h->control_pending_head))
492 {
493 GNUNET_CONTAINER_DLL_remove (h->control_pending_head,
494 h->control_pending_tail,
495 cm);
496 if (cm->th != NULL)
497 cm->th->cm = NULL;
498 if (cm->cont != NULL)
499 cm->cont (cm->cont_cls, GNUNET_NO);
500 GNUNET_free (cm);
501 }
491 if (h->client != NULL) 502 if (h->client != NULL)
492 { 503 {
493 GNUNET_CLIENT_disconnect (h->client, GNUNET_NO); 504 GNUNET_CLIENT_disconnect (h->client, GNUNET_NO);
@@ -505,17 +516,6 @@ reconnect_later (struct GNUNET_CORE_Handle *h)
505 h->reconnect_task = GNUNET_SCHEDULER_add_delayed (h->retry_backoff, 516 h->reconnect_task = GNUNET_SCHEDULER_add_delayed (h->retry_backoff,
506 &reconnect_task, 517 &reconnect_task,
507 h); 518 h);
508 while (NULL != (cm = h->control_pending_head))
509 {
510 GNUNET_CONTAINER_DLL_remove (h->control_pending_head,
511 h->control_pending_tail,
512 cm);
513 if (cm->th != NULL)
514 cm->th->cm = NULL;
515 if (cm->cont != NULL)
516 cm->cont (cm->cont_cls, GNUNET_NO);
517 GNUNET_free (cm);
518 }
519 GNUNET_assert (h->control_pending_head == NULL); 519 GNUNET_assert (h->control_pending_head == NULL);
520 h->retry_backoff = GNUNET_TIME_relative_min (GNUNET_TIME_UNIT_SECONDS, 520 h->retry_backoff = GNUNET_TIME_relative_min (GNUNET_TIME_UNIT_SECONDS,
521 h->retry_backoff); 521 h->retry_backoff);
@@ -1486,11 +1486,6 @@ GNUNET_CORE_disconnect (struct GNUNET_CORE_Handle *handle)
1486 GNUNET_CLIENT_notify_transmit_ready_cancel (handle->cth); 1486 GNUNET_CLIENT_notify_transmit_ready_cancel (handle->cth);
1487 handle->cth = NULL; 1487 handle->cth = NULL;
1488 } 1488 }
1489 if (handle->client != NULL)
1490 {
1491 GNUNET_CLIENT_disconnect (handle->client, GNUNET_NO);
1492 handle->client = NULL;
1493 }
1494 while (NULL != (cm = handle->control_pending_head)) 1489 while (NULL != (cm = handle->control_pending_head))
1495 { 1490 {
1496 GNUNET_CONTAINER_DLL_remove (handle->control_pending_head, 1491 GNUNET_CONTAINER_DLL_remove (handle->control_pending_head,
@@ -1502,6 +1497,11 @@ GNUNET_CORE_disconnect (struct GNUNET_CORE_Handle *handle)
1502 cm->cont (cm->cont_cls, GNUNET_SYSERR); 1497 cm->cont (cm->cont_cls, GNUNET_SYSERR);
1503 GNUNET_free (cm); 1498 GNUNET_free (cm);
1504 } 1499 }
1500 if (handle->client != NULL)
1501 {
1502 GNUNET_CLIENT_disconnect (handle->client, GNUNET_NO);
1503 handle->client = NULL;
1504 }
1505 if (handle->reconnect_task != GNUNET_SCHEDULER_NO_TASK) 1505 if (handle->reconnect_task != GNUNET_SCHEDULER_NO_TASK)
1506 { 1506 {
1507 GNUNET_SCHEDULER_cancel (handle->reconnect_task); 1507 GNUNET_SCHEDULER_cancel (handle->reconnect_task);