From 29e6158507a0758192075ac6ece7ba8e75ddc49a Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 9 Apr 2016 23:14:03 +0000 Subject: small API change: do no longer pass rarely needed GNUNET_SCHEDULER_TaskContext to all scheduler tasks; instead, allow the relatively few tasks that need it to obtain the context via GNUNET_SCHEDULER_get_task_context() --- src/gns/gns_api.c | 3 +-- src/gns/gnunet-bcd.c | 7 +++--- src/gns/gnunet-dns2gns.c | 22 +++++++---------- src/gns/gnunet-gns-helper-service-w32.c | 4 +--- src/gns/gnunet-gns-import.c | 4 +--- src/gns/gnunet-gns-proxy.c | 42 +++++++++++---------------------- src/gns/gnunet-gns.c | 4 +--- src/gns/gnunet-service-gns.c | 15 ++++-------- src/gns/gnunet-service-gns_resolver.c | 11 +++------ src/gns/plugin_rest_gns.c | 9 +++---- src/gns/test_gns_proxy.c | 12 +++++----- 11 files changed, 49 insertions(+), 84 deletions(-) (limited to 'src/gns') diff --git a/src/gns/gns_api.c b/src/gns/gns_api.c index da64b3a3a..6696158c9 100644 --- a/src/gns/gns_api.c +++ b/src/gns/gns_api.c @@ -203,10 +203,9 @@ reconnect (struct GNUNET_GNS_Handle *handle) * Reconnect to GNS * * @param cls the handle - * @param tc task context */ static void -reconnect_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +reconnect_task (void *cls) { struct GNUNET_GNS_Handle *handle = cls; diff --git a/src/gns/gnunet-bcd.c b/src/gns/gnunet-bcd.c index 24014f204..e7be8fd84 100644 --- a/src/gns/gnunet-bcd.c +++ b/src/gns/gnunet-bcd.c @@ -287,11 +287,13 @@ prepare_daemon (struct MHD_Daemon *daemon_handle); * and schedule the next run. */ static void -run_daemon (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +run_daemon (void *cls) { struct MHD_Daemon *daemon_handle = cls; + const struct GNUNET_SCHEDULER_TaskContext *tc; http_task = NULL; + tc = GNUNET_SCHEDULER_get_task_context (); if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) return; GNUNET_assert (MHD_YES == MHD_run (daemon_handle)); @@ -384,8 +386,7 @@ server_start () * Stop HTTP server. */ static void -server_stop (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +server_stop (void *cls) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "HTTP server shutdown\n"); diff --git a/src/gns/gnunet-dns2gns.c b/src/gns/gnunet-dns2gns.c index 7b5613234..119bda91a 100644 --- a/src/gns/gnunet-dns2gns.c +++ b/src/gns/gnunet-dns2gns.c @@ -170,11 +170,9 @@ static struct GNUNET_IDENTITY_Operation *id_op; * Task run on shutdown. Cleans up everything. * * @param cls unused - * @param tc scheduler context */ static void -do_shutdown (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_shutdown (void *cls) { if (NULL != t4) GNUNET_SCHEDULER_cancel (t4); @@ -252,12 +250,10 @@ send_response (struct Request *request) /** * Task run on timeout. Cleans up request. * - * @param cls 'struct Request' of the request to clean up - * @param tc scheduler context + * @param cls `struct Request *` of the request to clean up */ static void -do_timeout (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_timeout (void *cls) { struct Request *request = cls; @@ -507,21 +503,21 @@ handle_request (struct GNUNET_NETWORK_Handle *lsock, * Task to read IPv4 DNS packets. * * @param cls the 'listen_socket4' - * @param tc scheduler context */ static void -read_dns4 (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +read_dns4 (void *cls) { struct sockaddr_in v4; socklen_t addrlen; ssize_t size; + const struct GNUNET_SCHEDULER_TaskContext *tc; GNUNET_assert (listen_socket4 == cls); t4 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, listen_socket4, &read_dns4, listen_socket4); + tc = GNUNET_SCHEDULER_get_task_context (); if (0 == (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason)) return; /* shutdown? */ size = GNUNET_NETWORK_socket_recvfrom_amount (listen_socket4); @@ -550,21 +546,21 @@ read_dns4 (void *cls, * Task to read IPv6 DNS packets. * * @param cls the 'listen_socket6' - * @param tc scheduler context */ static void -read_dns6 (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +read_dns6 (void *cls) { struct sockaddr_in6 v6; socklen_t addrlen; ssize_t size; + const struct GNUNET_SCHEDULER_TaskContext *tc; GNUNET_assert (listen_socket6 == cls); t6 = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL, listen_socket6, &read_dns6, listen_socket6); + tc = GNUNET_SCHEDULER_get_task_context (); if (0 == (GNUNET_SCHEDULER_REASON_READ_READY & tc->reason)) return; /* shutdown? */ size = GNUNET_NETWORK_socket_recvfrom_amount (listen_socket6); diff --git a/src/gns/gnunet-gns-helper-service-w32.c b/src/gns/gnunet-gns-helper-service-w32.c index e4fc2f304..112bcd258 100644 --- a/src/gns/gnunet-gns-helper-service-w32.c +++ b/src/gns/gnunet-gns-helper-service-w32.c @@ -112,11 +112,9 @@ static int got_egos = 0; * Task run on shutdown. Cleans up everything. * * @param cls unused - * @param tc scheduler context */ static void -do_shutdown (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_shutdown (void *cls) { struct request *rq; if (NULL != id_op) diff --git a/src/gns/gnunet-gns-import.c b/src/gns/gnunet-gns-import.c index ad874cfeb..5f94e7792 100644 --- a/src/gns/gnunet-gns-import.c +++ b/src/gns/gnunet-gns-import.c @@ -344,11 +344,9 @@ get_ego (void *cls, * Task run on shutdown. * * @param cls NULL - * @param tc unused */ static void -shutdown_task (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +shutdown_task (void *cls) { GNUNET_free_non_null (master_zone_pkey); master_zone_pkey = NULL; diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c index 3b5adc8b1..9a34c83af 100644 --- a/src/gns/gnunet-gns-proxy.c +++ b/src/gns/gnunet-gns-proxy.c @@ -1257,10 +1257,9 @@ curl_upload_cb (void *buf, size_t size, size_t nmemb, void *cls) * from curl * * @param cls closure - * @param tc task context */ static void -curl_task_download (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); +curl_task_download (void *cls); /** @@ -1328,11 +1327,9 @@ curl_download_prepare () * Task that is run when we are ready to receive more data from curl. * * @param cls closure, NULL - * @param tc task context */ static void -curl_task_download (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +curl_task_download (void *cls) { int running; int msgnum; @@ -1821,11 +1818,9 @@ kill_httpd (struct MhdHttpList *hd) * Task run whenever HTTP server is idle for too long. Kill it. * * @param cls the `struct MhdHttpList *` - * @param tc sched context */ static void -kill_httpd_task (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +kill_httpd_task (void *cls) { struct MhdHttpList *hd = cls; @@ -1838,11 +1833,9 @@ kill_httpd_task (void *cls, * Task run whenever HTTP server operations are pending. * * @param cls the `struct MhdHttpList *` of the daemon that is being run - * @param tc sched context */ static void -do_httpd (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc); +do_httpd (void *cls); /** @@ -1920,11 +1913,9 @@ schedule_httpd (struct MhdHttpList *hd) * Task run whenever HTTP server operations are pending. * * @param cls the `struct MhdHttpList` of the daemon that is being run - * @param tc scheduler context */ static void -do_httpd (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_httpd (void *cls) { struct MhdHttpList *hd = cls; @@ -2171,11 +2162,9 @@ lookup_ssl_httpd (const char* domain) * the SOCKS5 handshake). Clean up. * * @param cls the `struct Socks5Request *` - * @param tc sched context */ static void -timeout_s5r_handshake (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +timeout_s5r_handshake (void *cls) { struct Socks5Request *s5r = cls; @@ -2245,11 +2234,9 @@ setup_data_transfer (struct Socks5Request *s5r) * Write data from buffer to socks5 client, then continue with state machine. * * @param cls the closure with the `struct Socks5Request` - * @param tc scheduler context */ static void -do_write (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_write (void *cls) { struct Socks5Request *s5r = cls; ssize_t len; @@ -2502,11 +2489,9 @@ clear_from_s5r_rbuf (struct Socks5Request *s5r, * Read data from incoming Socks5 connection * * @param cls the closure with the `struct Socks5Request` - * @param tc the scheduler context */ static void -do_s5r_read (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_s5r_read (void *cls) { struct Socks5Request *s5r = cls; const struct Socks5ClientHelloMessage *c_hello; @@ -2514,8 +2499,10 @@ do_s5r_read (void *cls, const struct Socks5ClientRequestMessage *c_req; ssize_t rlen; size_t alen; + const struct GNUNET_SCHEDULER_TaskContext *tc; s5r->rtask = NULL; + tc = GNUNET_SCHEDULER_get_task_context (); if ( (NULL != tc->read_ready) && (GNUNET_NETWORK_fdset_isset (tc->read_ready, s5r->sock)) ) { @@ -2721,17 +2708,18 @@ do_s5r_read (void *cls, * @param tc the scheduler context */ static void -do_accept (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_accept (void *cls) { struct GNUNET_NETWORK_Handle *lsock = cls; struct GNUNET_NETWORK_Handle *s; struct Socks5Request *s5r; + const struct GNUNET_SCHEDULER_TaskContext *tc; if (lsock == lsock4) ltask4 = NULL; else ltask6 = NULL; + tc = GNUNET_SCHEDULER_get_task_context (); if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) return; if (lsock == lsock4) @@ -2769,11 +2757,9 @@ do_accept (void *cls, * Task run on shutdown * * @param cls closure - * @param tc task context */ static void -do_shutdown (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_shutdown (void *cls) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down...\n"); diff --git a/src/gns/gnunet-gns.c b/src/gns/gnunet-gns.c index 5d083cdb6..c8310db46 100644 --- a/src/gns/gnunet-gns.c +++ b/src/gns/gnunet-gns.c @@ -105,11 +105,9 @@ static struct GNUNET_IDENTITY_Operation *id_op; * Task run on shutdown. Cleans up everything. * * @param cls unused - * @param tc scheduler context */ static void -do_shutdown (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_shutdown (void *cls) { if (NULL != el) { diff --git a/src/gns/gnunet-service-gns.c b/src/gns/gnunet-service-gns.c index 076475d2c..87b0fd04e 100644 --- a/src/gns/gnunet-service-gns.c +++ b/src/gns/gnunet-service-gns.c @@ -260,8 +260,7 @@ static struct GNUNET_STATISTICS_Handle *statistics; * @param tc unused */ static void -shutdown_task (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +shutdown_task (void *cls) { struct ClientLookupHandle *clh; struct MonitorActivity *ma; @@ -349,11 +348,9 @@ shutdown_task (void *cls, * Method called periodically that triggers iteration over authoritative records * * @param cls closure - * @param tc task context */ static void -publish_zone_dht_next (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +publish_zone_dht_next (void *cls) { zone_publish_task = NULL; GNUNET_NAMESTORE_zone_iterator_next (namestore_iter); @@ -364,11 +361,9 @@ publish_zone_dht_next (void *cls, * Periodically iterate over our zone and store everything in dht * * @param cls NULL - * @param tc task context */ static void -publish_zone_dht_start (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc); +publish_zone_dht_start (void *cls); /** @@ -629,11 +624,9 @@ put_gns_record (void *cls, * Periodically iterate over all zones and store everything in DHT * * @param cls NULL - * @param tc task context */ static void -publish_zone_dht_start (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +publish_zone_dht_start (void *cls) { zone_publish_task = NULL; diff --git a/src/gns/gnunet-service-gns_resolver.c b/src/gns/gnunet-service-gns_resolver.c index 9a54a8080..daae46ab7 100644 --- a/src/gns/gnunet-service-gns_resolver.c +++ b/src/gns/gnunet-service-gns_resolver.c @@ -541,11 +541,9 @@ translate_dot_plus (struct GNS_ResolverHandle *rh, * Task scheduled to asynchronously fail a resolution. * * @param cls the 'struct GNS_ResolverHandle' of the resolution to fail - * @param tc task context */ static void -fail_resolution (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +fail_resolution (void *cls) { struct GNS_ResolverHandle *rh = cls; @@ -808,8 +806,7 @@ handle_dns_result (void *cls, * @param tc task context */ static void -recursive_resolution (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc); +recursive_resolution (void *cls); /** @@ -2229,11 +2226,9 @@ recursive_gns_resolution_revocation (struct GNS_ResolverHandle *rh) * Task scheduled to continue with the resolution process. * * @param cls the `struct GNS_ResolverHandle` of the resolution - * @param tc task context */ static void -recursive_resolution (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +recursive_resolution (void *cls) { struct GNS_ResolverHandle *rh = cls; diff --git a/src/gns/plugin_rest_gns.c b/src/gns/plugin_rest_gns.c index 4878669e4..8a3f26041 100644 --- a/src/gns/plugin_rest_gns.c +++ b/src/gns/plugin_rest_gns.c @@ -211,11 +211,12 @@ cleanup_handle (struct LookupHandle *handle) * @param tc scheduler context */ static void -do_error (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +do_error (void *cls) { struct LookupHandle *handle = cls; - struct MHD_Response *resp = GNUNET_REST_create_json_response (NULL); + struct MHD_Response *resp; + + resp = GNUNET_REST_create_json_response (NULL); handle->proc (handle->proc_cls, resp, MHD_HTTP_BAD_REQUEST); cleanup_handle (handle); } @@ -550,7 +551,7 @@ get_gns_cont (struct RestConnectionDataHandle *conndata_handle, GNUNET_CONTAINER_multihashmap_contains (conndata_handle->url_param_map, &key) ) { - handle->type = GNUNET_GNSRECORD_typename_to_number + handle->type = GNUNET_GNSRECORD_typename_to_number (GNUNET_CONTAINER_multihashmap_get (conndata_handle->url_param_map, &key)); } diff --git a/src/gns/test_gns_proxy.c b/src/gns/test_gns_proxy.c index 72e8ff20b..0afc3ea0b 100644 --- a/src/gns/test_gns_proxy.c +++ b/src/gns/test_gns_proxy.c @@ -165,8 +165,7 @@ curl_main (void); static void -curl_task (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +curl_task (void *cls) { curl_task_id = NULL; curl_main (); @@ -247,7 +246,7 @@ curl_main () } static void -start_curl (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +start_curl (void *cls) { GNUNET_asprintf (&url, "http://%s:%d/hello_world", @@ -269,12 +268,14 @@ start_curl (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) curl_main (); } + static void -disco_ns (void* cls, const struct GNUNET_SCHEDULER_TaskContext *tc) +disco_ns (void* cls) { GNUNET_NAMESTORE_disconnect (namestore); } + /** * Callback invoked from the namestore service once record is * created. @@ -315,8 +316,7 @@ mhd_main (void); static void -mhd_task (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +mhd_task (void *cls) { mhd_task_id = NULL; MHD_run (mhd); -- cgit v1.2.3