From: Christian Grothoff Date: Wed, 15 Jun 2011 07:56:14 +0000 (+0000) Subject: cleanup X-Git-Tag: initial-import-from-subversion-38251~18160 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c0509e6458b802101cbf22e242805c6fda410418;p=oweals%2Fgnunet.git cleanup --- diff --git a/src/vpn/gnunet-daemon-vpn-dns.c b/src/vpn/gnunet-daemon-vpn-dns.c index 46ec6d659..bb27c1401 100644 --- a/src/vpn/gnunet-daemon-vpn-dns.c +++ b/src/vpn/gnunet-daemon-vpn-dns.c @@ -111,6 +111,7 @@ send_query(void* cls __attribute__((unused)), size_t size, void* buf) { void connect_to_service_dns (void *cls __attribute__((unused)), const struct GNUNET_SCHEDULER_TaskContext *tc) { + conn_task = GNUNET_SCHEDULER_NO_TASK; if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) return; GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Connecting to service-dns\n"); @@ -135,6 +136,7 @@ connect_to_service_dns (void *cls __attribute__((unused)), { GNUNET_CLIENT_notify_transmit_ready(dns_connection, sizeof(struct GNUNET_MessageHeader), GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, &send_query, NULL); } + conn_task = GNUNET_SCHEDULER_add_now (start_helper_and_schedule, NULL); } /** @@ -148,9 +150,9 @@ dns_answer_handler(void* cls __attribute__((unused)), const struct GNUNET_Messag { GNUNET_CLIENT_disconnect(dns_connection, GNUNET_NO); dns_connection = NULL; - GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, - &connect_to_service_dns, - NULL); + conn_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, + &connect_to_service_dns, + NULL); return; } @@ -160,8 +162,8 @@ dns_answer_handler(void* cls __attribute__((unused)), const struct GNUNET_Messag GNUNET_break (0); GNUNET_CLIENT_disconnect(dns_connection, GNUNET_NO); dns_connection = NULL; - GNUNET_SCHEDULER_add_now (&connect_to_service_dns, - NULL); + conn_task = GNUNET_SCHEDULER_add_now (&connect_to_service_dns, + NULL); return; } void *pkt = GNUNET_malloc(ntohs(msg->size)); diff --git a/src/vpn/gnunet-daemon-vpn-dns.h b/src/vpn/gnunet-daemon-vpn-dns.h index d27599e48..ed980e65f 100644 --- a/src/vpn/gnunet-daemon-vpn-dns.h +++ b/src/vpn/gnunet-daemon-vpn-dns.h @@ -80,4 +80,6 @@ extern struct answer_packet_list *answer_proc_head; */ extern struct answer_packet_list *answer_proc_tail; +extern GNUNET_SCHEDULER_TaskIdentifier conn_task; + #endif /* end of include guard: GNUNET-DAEMON-VPN-DNS_H */ diff --git a/src/vpn/gnunet-daemon-vpn-helper.c b/src/vpn/gnunet-daemon-vpn-helper.c index 8c27378e0..9a1ddd8cc 100644 --- a/src/vpn/gnunet-daemon-vpn-helper.c +++ b/src/vpn/gnunet-daemon-vpn-helper.c @@ -55,6 +55,7 @@ struct GNUNET_VPN_HELPER_Handle *helper_handle; void start_helper_and_schedule(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + shs_task = GNUNET_SCHEDULER_NO_TASK; if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) return; diff --git a/src/vpn/gnunet-daemon-vpn-helper.h b/src/vpn/gnunet-daemon-vpn-helper.h index 093343742..85436e2cd 100644 --- a/src/vpn/gnunet-daemon-vpn-helper.h +++ b/src/vpn/gnunet-daemon-vpn-helper.h @@ -33,6 +33,8 @@ */ extern struct GNUNET_VPN_HELPER_Handle *helper_handle; +extern GNUNET_SCHEDULER_TaskIdentifier shs_task; + /** * Start the helper-process */ diff --git a/src/vpn/gnunet-daemon-vpn.c b/src/vpn/gnunet-daemon-vpn.c index 9a1f69c72..cef876b52 100644 --- a/src/vpn/gnunet-daemon-vpn.c +++ b/src/vpn/gnunet-daemon-vpn.c @@ -61,6 +61,10 @@ static int ret; */ static struct GNUNET_CONTAINER_MultiHashMap *udp_connections; +GNUNET_SCHEDULER_TaskIdentifier conn_task; + +GNUNET_SCHEDULER_TaskIdentifier shs_task; + /** * Function scheduled as very last function, cleans up after us *{{{ @@ -84,6 +88,16 @@ cleanup(void* cls __attribute__((unused)), const struct GNUNET_SCHEDULER_TaskCon GNUNET_MESH_disconnect(mesh_handle); mesh_handle = NULL; } + if (GNUNET_SCHEDULER_NO_TASK != shs_task) + { + GNUNET_SCHEDULER_cancel (shs_task); + shs_task = GNUNET_SCHEDULER_NO_TASK; + } + if (GNUNET_SCHEDULER_NO_TASK != conn_task) + { + GNUNET_SCHEDULER_cancel (conn_task); + conn_task = GNUNET_SCHEDULER_NO_TASK; + } } /*}}}*/ @@ -733,8 +747,8 @@ run (void *cls, GNUNET_CONFIGURATION_get_value_number (cfg, "vpn", "MAX_MAPPINGg", &max_mappings); udp_connections = GNUNET_CONTAINER_multihashmap_create(65536); - GNUNET_SCHEDULER_TaskIdentifier conn_task = GNUNET_SCHEDULER_add_now (connect_to_service_dns, NULL); - GNUNET_SCHEDULER_add_after (conn_task, start_helper_and_schedule, NULL); + conn_task = GNUNET_SCHEDULER_add_now (connect_to_service_dns, NULL); + shs_task = GNUNET_SCHEDULER_add_after (conn_task, start_helper_and_schedule, NULL); GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_FOREVER_REL, &cleanup, cls); }