From: Christian Grothoff Date: Wed, 1 Dec 2010 19:21:41 +0000 (+0000) Subject: do not free if still connected X-Git-Tag: initial-import-from-subversion-38251~19564 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6f79c1c8c2bc7b19646de749e5c05eb77cea1d50;p=oweals%2Fgnunet.git do not free if still connected --- diff --git a/src/transport/transport_api.c b/src/transport/transport_api.c index b0154ea78..414af0178 100644 --- a/src/transport/transport_api.c +++ b/src/transport/transport_api.c @@ -1374,6 +1374,7 @@ send_request_connect_message(struct GNUNET_TRANSPORT_Handle *h, struct Neighbour GNUNET_TIME_UNIT_FOREVER_REL, &send_transport_request_connect, trcm); } + /** * Add neighbour to our list * @@ -1412,6 +1413,7 @@ neighbour_add (struct GNUNET_TRANSPORT_Handle *h, return n; } + /** * Iterator over hash map entries, for deleting state of a neighbor. * @@ -1509,11 +1511,11 @@ GNUNET_TRANSPORT_disconnect (struct GNUNET_TRANSPORT_Handle *handle) #endif handle->in_disconnect = GNUNET_YES; - GNUNET_assert(GNUNET_SYSERR != - GNUNET_CONTAINER_multihashmap_iterate(handle->neighbours, - &delete_neighbours, - handle)); - GNUNET_CONTAINER_multihashmap_destroy(handle->neighbours); + GNUNET_assert (GNUNET_SYSERR != + GNUNET_CONTAINER_multihashmap_iterate(handle->neighbours, + &delete_neighbours, + handle)); + GNUNET_CONTAINER_multihashmap_destroy (handle->neighbours); while (NULL != (hwl = handle->hwl_head)) { @@ -2005,7 +2007,8 @@ GNUNET_TRANSPORT_notify_transmit_ready_cancel (struct break; case TS_QUEUED: n->transmit_stage = TS_NEW; - if (n->in_disconnect == GNUNET_NO) + if ( (n->in_disconnect == GNUNET_NO) && + (n->is_connected == GNUNET_NO) ) neighbour_free (n); break; case TS_TRANSMITTED: