diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-05-11 19:16:47 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-05-11 19:16:47 +0000 |
commit | 87c4be711b7a39b3bdae020df735eab4fba2de56 (patch) | |
tree | 8715cb7e28efeca6e71ee64dc4d41a3bb39b2afd /src | |
parent | b6611f1bfbf2f21cc66759b16660d0203db22504 (diff) | |
download | gnunet-87c4be711b7a39b3bdae020df735eab4fba2de56.tar.gz gnunet-87c4be711b7a39b3bdae020df735eab4fba2de56.zip |
asserts
Diffstat (limited to 'src')
-rw-r--r-- | src/util/client.c | 2 | ||||
-rw-r--r-- | src/util/connection.c | 48 |
2 files changed, 33 insertions, 17 deletions
diff --git a/src/util/client.c b/src/util/client.c index 8a93bae9b..88f326573 100644 --- a/src/util/client.c +++ b/src/util/client.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #include "gnunet_server_lib.h" | 34 | #include "gnunet_server_lib.h" |
35 | #include "gnunet_scheduler_lib.h" | 35 | #include "gnunet_scheduler_lib.h" |
36 | 36 | ||
37 | #define DEBUG_CLIENT GNUNET_NO | 37 | #define DEBUG_CLIENT GNUNET_YES |
38 | 38 | ||
39 | /** | 39 | /** |
40 | * How often do we re-try tranmsitting requests before giving up? | 40 | * How often do we re-try tranmsitting requests before giving up? |
diff --git a/src/util/connection.c b/src/util/connection.c index a877e06c2..d2d4432c6 100644 --- a/src/util/connection.c +++ b/src/util/connection.c | |||
@@ -245,6 +245,11 @@ struct GNUNET_CONNECTION_Handle | |||
245 | GNUNET_SCHEDULER_TaskIdentifier write_task; | 245 | GNUNET_SCHEDULER_TaskIdentifier write_task; |
246 | 246 | ||
247 | /** | 247 | /** |
248 | * Destroy task (if already scheduled). | ||
249 | */ | ||
250 | GNUNET_SCHEDULER_TaskIdentifier destroy_task; | ||
251 | |||
252 | /** | ||
248 | * Handle to a pending DNS lookup request. | 253 | * Handle to a pending DNS lookup request. |
249 | */ | 254 | */ |
250 | struct GNUNET_RESOLVER_RequestHandle *dns_active; | 255 | struct GNUNET_RESOLVER_RequestHandle *dns_active; |
@@ -472,7 +477,8 @@ destroy_continuation (void *cls, | |||
472 | struct GNUNET_CONNECTION_Handle *sock = cls; | 477 | struct GNUNET_CONNECTION_Handle *sock = cls; |
473 | GNUNET_CONNECTION_TransmitReadyNotify notify; | 478 | GNUNET_CONNECTION_TransmitReadyNotify notify; |
474 | struct AddressProbe *pos; | 479 | struct AddressProbe *pos; |
475 | 480 | ||
481 | sock->destroy_task = GNUNET_SCHEDULER_NO_TASK; | ||
476 | GNUNET_assert (sock->dns_active == NULL); | 482 | GNUNET_assert (sock->dns_active == NULL); |
477 | if (0 != (sock->ccs & COCO_TRANSMIT_READY)) | 483 | if (0 != (sock->ccs & COCO_TRANSMIT_READY)) |
478 | { | 484 | { |
@@ -489,9 +495,11 @@ destroy_continuation (void *cls, | |||
489 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 495 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
490 | "Destroy waits for write_task to be done (%p)\n", sock); | 496 | "Destroy waits for write_task to be done (%p)\n", sock); |
491 | #endif | 497 | #endif |
492 | GNUNET_SCHEDULER_add_after (sock->sched, | 498 | GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task); |
493 | sock->write_task, | 499 | sock->destroy_task |
494 | &destroy_continuation, sock); | 500 | = GNUNET_SCHEDULER_add_after (sock->sched, |
501 | sock->write_task, | ||
502 | &destroy_continuation, sock); | ||
495 | return; | 503 | return; |
496 | } | 504 | } |
497 | if (0 != (sock->ccs & COCO_RECEIVE_AGAIN)) | 505 | if (0 != (sock->ccs & COCO_RECEIVE_AGAIN)) |
@@ -510,9 +518,11 @@ destroy_continuation (void *cls, | |||
510 | } | 518 | } |
511 | if (sock->read_task != GNUNET_SCHEDULER_NO_TASK) | 519 | if (sock->read_task != GNUNET_SCHEDULER_NO_TASK) |
512 | { | 520 | { |
513 | GNUNET_SCHEDULER_add_after (sock->sched, | 521 | GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task); |
514 | sock->read_task, | 522 | sock->destroy_task |
515 | &destroy_continuation, sock); | 523 | = GNUNET_SCHEDULER_add_after (sock->sched, |
524 | sock->read_task, | ||
525 | &destroy_continuation, sock); | ||
516 | return; | 526 | return; |
517 | } | 527 | } |
518 | #if DEBUG_CONNECTION | 528 | #if DEBUG_CONNECTION |
@@ -549,6 +559,7 @@ destroy_continuation (void *cls, | |||
549 | } | 559 | } |
550 | GNUNET_free_non_null (sock->addr); | 560 | GNUNET_free_non_null (sock->addr); |
551 | GNUNET_free_non_null (sock->hostname); | 561 | GNUNET_free_non_null (sock->hostname); |
562 | GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task); | ||
552 | #if DEBUG_CONNECTION | 563 | #if DEBUG_CONNECTION |
553 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 564 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
554 | "Freeing memory of connection %p.\n", sock); | 565 | "Freeing memory of connection %p.\n", sock); |
@@ -625,9 +636,11 @@ connect_fail_continuation (struct GNUNET_CONNECTION_Handle *h) | |||
625 | h); | 636 | h); |
626 | #endif | 637 | #endif |
627 | h->ccs -= COCO_DESTROY_CONTINUATION; | 638 | h->ccs -= COCO_DESTROY_CONTINUATION; |
628 | GNUNET_SCHEDULER_add_continuation (h->sched, | 639 | GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == h->destroy_task); |
629 | &destroy_continuation, | 640 | h->destroy_task |
630 | h, GNUNET_SCHEDULER_REASON_TIMEOUT); | 641 | = GNUNET_SCHEDULER_add_now (h->sched, |
642 | &destroy_continuation, | ||
643 | h); | ||
631 | } | 644 | } |
632 | } | 645 | } |
633 | 646 | ||
@@ -683,10 +696,11 @@ connect_success_continuation (struct GNUNET_CONNECTION_Handle *h) | |||
683 | h); | 696 | h); |
684 | #endif | 697 | #endif |
685 | h->ccs -= COCO_DESTROY_CONTINUATION; | 698 | h->ccs -= COCO_DESTROY_CONTINUATION; |
686 | GNUNET_SCHEDULER_add_continuation (h->sched, | 699 | GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == h->destroy_task); |
687 | &destroy_continuation, | 700 | h->destroy_task |
688 | h, | 701 | = GNUNET_SCHEDULER_add_now (h->sched, |
689 | GNUNET_SCHEDULER_REASON_PREREQ_DONE); | 702 | &destroy_continuation, |
703 | h); | ||
690 | } | 704 | } |
691 | } | 705 | } |
692 | 706 | ||
@@ -974,8 +988,10 @@ GNUNET_CONNECTION_destroy (struct GNUNET_CONNECTION_Handle *sock, | |||
974 | sock->dns_active = NULL; | 988 | sock->dns_active = NULL; |
975 | } | 989 | } |
976 | GNUNET_assert (sock->sched != NULL); | 990 | GNUNET_assert (sock->sched != NULL); |
977 | GNUNET_SCHEDULER_add_now (sock->sched, | 991 | GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == sock->destroy_task); |
978 | &destroy_continuation, sock); | 992 | sock->destroy_task |
993 | = GNUNET_SCHEDULER_add_now (sock->sched, | ||
994 | &destroy_continuation, sock); | ||
979 | } | 995 | } |
980 | 996 | ||
981 | 997 | ||