From 7b04a43c05834b937b32a596f1941e9728add5fa Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 11 Nov 2016 17:30:23 +0100 Subject: dirmngr: Prepare to trigger jobs by network activity. * dirmngr/http.c (netactivity_cb): New. (http_register_netactivity_cb): New. (notify_netactivity): New. (connect_server): Call that function. * dirmngr/dirmngr.c (main): Call http_register_netactivity_cb. (netactivity_action): New stub handler. Signed-off-by: Werner Koch --- dirmngr/dirmngr.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'dirmngr/dirmngr.c') diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c index 14189fea6..254c54341 100644 --- a/dirmngr/dirmngr.c +++ b/dirmngr/dirmngr.c @@ -328,6 +328,7 @@ static void cleanup (void); static ldap_server_t parse_ldapserver_file (const char* filename); #endif /*USE_LDAP*/ static fingerprint_list_t parse_ocsp_signer (const char *string); +static void netactivity_action (void); static void handle_connections (assuan_fd_t listen_fd); /* NPth wrapper function definitions. */ @@ -995,6 +996,7 @@ main (int argc, char **argv) #if USE_LDAP ldap_wrapper_launch_thread (); #endif /*USE_LDAP*/ + http_register_netactivity_cb (netactivity_action); start_command_handler (ASSUAN_INVALID_FD); shutdown_reaper (); } @@ -1032,6 +1034,7 @@ main (int argc, char **argv) #if USE_LDAP ldap_wrapper_launch_thread (); #endif /*USE_LDAP*/ + http_register_netactivity_cb (netactivity_action); handle_connections (3); assuan_sock_close (3); shutdown_reaper (); @@ -1232,6 +1235,7 @@ main (int argc, char **argv) #if USE_LDAP ldap_wrapper_launch_thread (); #endif /*USE_LDAP*/ + http_register_netactivity_cb (netactivity_action); handle_connections (fd); assuan_sock_close (fd); shutdown_reaper (); @@ -1702,6 +1706,16 @@ dirmngr_sighup_action (void) } +/* This function is called if some network activity was done. At this + * point we know the we have a network and we can decide whether to + * run scheduled background tasks soon. The function should return + * quickly and only trigger actions for another thread. */ +static void +netactivity_action (void) +{ + log_debug ("network activity seen\n"); +} + /* The signal handler. */ #ifndef HAVE_W32_SYSTEM -- cgit v1.2.3