aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/dirmngr.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-11-29 19:35:10 +0000
committerWerner Koch <[email protected]>2016-11-29 19:35:23 +0000
commitaa6ab9e0bc67fe9ce5601047e84ea4a875e8eb64 (patch)
tree3d341b20bcaa6734d8c3f066c6765fe7539de43e /dirmngr/dirmngr.c
parentagent,dirmngr: Handle corner case in shutdown mode. (diff)
downloadgnupg-aa6ab9e0bc67fe9ce5601047e84ea4a875e8eb64.tar.gz
gnupg-aa6ab9e0bc67fe9ce5601047e84ea4a875e8eb64.zip
agent,dirmngr: Tiny restructuring.
* agent/gpg-agent.c (handle_connections): Add a comment. * dirmngr/dirmngr.c (main): Move assuan_sock_close of the listening socket to ... (handle_connections): here. Add a comment why we keep the listening socket open during a shutdown. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'dirmngr/dirmngr.c')
-rw-r--r--dirmngr/dirmngr.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c
index 748f30991..191f7724f 100644
--- a/dirmngr/dirmngr.c
+++ b/dirmngr/dirmngr.c
@@ -1026,7 +1026,6 @@ main (int argc, char **argv)
crl_cache_init ();
http_register_netactivity_cb (netactivity_action);
handle_connections (3);
- assuan_sock_close (3);
shutdown_reaper ();
}
#endif /*HAVE_W32_SYSTEM*/
@@ -1234,7 +1233,6 @@ main (int argc, char **argv)
crl_cache_init ();
http_register_netactivity_cb (netactivity_action);
handle_connections (fd);
- assuan_sock_close (fd);
shutdown_reaper ();
}
else if (cmd == aListCRLs)
@@ -1925,7 +1923,8 @@ my_inotify_is_name (int fd, const char *name)
#endif /*HAVE_INOTIFY_INIT*/
-/* Main loop in daemon mode. */
+/* Main loop in daemon mode. Note that LISTEN_FD will be owned by
+ * this function. */
static void
handle_connections (assuan_fd_t listen_fd)
{
@@ -2006,7 +2005,14 @@ handle_connections (assuan_fd_t listen_fd)
break; /* ready */
/* Do not accept new connections but keep on running the
- loop to cope with the timer events. */
+ * loop to cope with the timer events.
+ *
+ * Note that we do not close the listening socket because a
+ * client trying to connect to that socket would instead
+ * restart a new dirmngr instance - which is unlikely the
+ * intention of a shutdown. */
+ /* assuan_sock_close (listen_fd); */
+ /* listen_fd = -1; */
FD_ZERO (&fdset);
nfd = -1;
if (my_inotify_fd != -1)
@@ -2109,6 +2115,8 @@ handle_connections (assuan_fd_t listen_fd)
close (my_inotify_fd);
#endif /*HAVE_INOTIFY_INIT*/
npth_attr_destroy (&tattr);
+ if (listen_fd != -1)
+ assuan_sock_close (fd);
cleanup ();
log_info ("%s %s stopped\n", strusage(11), strusage(13));
}