From: Christian Grothoff Date: Sun, 11 Sep 2016 18:36:31 +0000 (+0000) Subject: fix dht kill issue X-Git-Tag: initial-import-from-subversion-38251~281 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6b1872cb726e672b0e625c46075dab8ed41034d8;p=oweals%2Fgnunet.git fix dht kill issue --- diff --git a/src/dht/gnunet-service-dht.c b/src/dht/gnunet-service-dht.c index 332d48a86..1e3dd339d 100644 --- a/src/dht/gnunet-service-dht.c +++ b/src/dht/gnunet-service-dht.c @@ -125,6 +125,7 @@ shutdown_task (void *cls) } GNUNET_free_non_null (GDS_my_hello); GDS_my_hello = NULL; + GDS_CLIENTS_stop (); } diff --git a/src/dht/gnunet-service-dht_clients.c b/src/dht/gnunet-service-dht_clients.c index 2e8d309db..38dbb64e5 100644 --- a/src/dht/gnunet-service-dht_clients.c +++ b/src/dht/gnunet-service-dht_clients.c @@ -626,11 +626,17 @@ handle_dht_local_get (void *cls, struct GNUNET_SERVER_Client *client, /* start remote requests */ if (NULL != retry_task) GNUNET_SCHEDULER_cancel (retry_task); - retry_task = GNUNET_SCHEDULER_add_now (&transmit_next_request_task, NULL); + retry_task = GNUNET_SCHEDULER_add_now (&transmit_next_request_task, + NULL); /* perform local lookup */ - GDS_DATACACHE_handle_get (&get->key, cqr->type, cqr->xquery, xquery_size, - NULL, 0); - GNUNET_SERVER_receive_done (client, GNUNET_OK); + GDS_DATACACHE_handle_get (&get->key, + cqr->type, + cqr->xquery, + xquery_size, + NULL, + 0); + GNUNET_SERVER_receive_done (client, + GNUNET_OK); } @@ -1515,15 +1521,23 @@ GDS_CLIENTS_init () * Shutdown client subsystem. */ void -GDS_CLIENTS_done () +GDS_CLIENTS_stop () { - GNUNET_assert (client_head == NULL); - GNUNET_assert (client_tail == NULL); if (NULL != retry_task) { GNUNET_SCHEDULER_cancel (retry_task); retry_task = NULL; } +} + +/** + * Shutdown client subsystem. + */ +void +GDS_CLIENTS_done () +{ + GNUNET_assert (client_head == NULL); + GNUNET_assert (client_tail == NULL); if (NULL != retry_heap) { GNUNET_assert (0 == GNUNET_CONTAINER_heap_get_size (retry_heap)); diff --git a/src/dht/gnunet-service-dht_clients.h b/src/dht/gnunet-service-dht_clients.h index d8e1c184d..8a0931f6a 100644 --- a/src/dht/gnunet-service-dht_clients.h +++ b/src/dht/gnunet-service-dht_clients.h @@ -137,6 +137,12 @@ GDS_CLIENTS_process_put (uint32_t options, void GDS_CLIENTS_init (void); +/** + * Shutdown client subsystem. + */ +void +GDS_CLIENTS_stop (void); + /** * Shutdown client subsystem.