commit 6b1872cb726e672b0e625c46075dab8ed41034d8
parent 18cb6bc2d5cd2a1f3c985516a658000b70cab2ba
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 11 Sep 2016 18:36:31 +0000
fix dht kill issue
Diffstat:
3 files changed, 28 insertions(+), 7 deletions(-)
diff --git 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
@@ -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
@@ -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.