diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-06-01 15:28:40 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-06-01 15:28:40 +0000 |
commit | 85c91cf16bcb28522945d27ec1fb52477b603bef (patch) | |
tree | 4f7f1a9bc41260c8c5a868286a30e7db069156e4 /src/core | |
parent | fb3c8466ece5cfca78b96331d69549de10636ac1 (diff) | |
download | gnunet-85c91cf16bcb28522945d27ec1fb52477b603bef.tar.gz gnunet-85c91cf16bcb28522945d27ec1fb52477b603bef.zip |
fix
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/core_api.c | 32 |
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); |