From 8eb9f5831e0d8209eccea6c38968dc2b78a9fd14 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 2 Oct 2009 13:40:59 +0000 Subject: [PATCH] fixes --- src/transport/plugin_transport_tcp.c | 2 +- src/transport/transport_api.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index 15afeab3d..8e5f5dcef 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c @@ -39,7 +39,7 @@ #include "plugin_transport.h" #include "transport.h" -#define DEBUG_TCP GNUNET_YES +#define DEBUG_TCP GNUNET_NO /** * After how long do we expire an address that we diff --git a/src/transport/transport_api.c b/src/transport/transport_api.c index 49462fd5d..367df658d 100644 --- a/src/transport/transport_api.c +++ b/src/transport/transport_api.c @@ -381,6 +381,7 @@ transport_notify_ready (void *cls, size_t size, void *buf) GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Could not transmit to transport service, cancelling pending requests\n"); #endif + th->notify_delay_task = GNUNET_SCHEDULER_NO_TASK; th = h->connect_ready_head; if (th->next != NULL) th->next->prev = NULL; @@ -390,8 +391,12 @@ transport_notify_ready (void *cls, size_t size, void *buf) GNUNET_assert (n->transmit_handle == th); n->transmit_handle = NULL; } + GNUNET_assert (GNUNET_SCHEDULER_NO_TASK != th->notify_delay_task); + GNUNET_SCHEDULER_cancel (h->sched, + th->notify_delay_task); GNUNET_assert (0 == th->notify (th->notify_cls, 0, NULL)); GNUNET_free (th); + if (h->connect_ready_head != NULL) schedule_transmission (h); /* FIXME: is this ok? */ return 0; } #if DEBUG_TRANSPORT @@ -990,6 +995,11 @@ request_connect (void *cls, size_t size, void *buf) GNUNET_i2s(&th->target)); #endif th->notify (th->notify_cls, 0, NULL); + if (th->notify_delay_task != GNUNET_SCHEDULER_NO_TASK) + { + GNUNET_SCHEDULER_cancel (h->sched, th->notify_delay_task); + th->notify_delay_task = GNUNET_SCHEDULER_NO_TASK; + } GNUNET_free (th); return 0; } -- 2.25.1