summaryrefslogtreecommitdiffstats
path: root/src/kadmin/v5server/srv_net.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kadmin/v5server/srv_net.c')
-rw-r--r--src/kadmin/v5server/srv_net.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/kadmin/v5server/srv_net.c b/src/kadmin/v5server/srv_net.c
index 75ce3beb3..e0fcedc4d 100644
--- a/src/kadmin/v5server/srv_net.c
+++ b/src/kadmin/v5server/srv_net.c
@@ -703,8 +703,9 @@ net_finish(kcontext, debug_level)
* comes in, dispatch to net_client_connect().
*/
krb5_error_code
-net_dispatch(kcontext)
+net_dispatch(kcontext, detached)
krb5_context kcontext;
+ int detached;
{
krb5_error_code kret;
fd_set mask, readfds;
@@ -729,14 +730,18 @@ net_dispatch(kcontext)
#ifdef DEBUG
(void) sigaction(SIGINT, &s_action, (struct sigaction *) NULL);
#endif /* DEBUG */
+ if (!detached)
+ (void) sigaction(SIGHUP, &s_action, (struct sigaction *) NULL);
#else /* POSIX_SIGNALS */
/*
- * SIGTERM (or SIGINT, if debug) shuts us down.
+ * SIGTERM (or SIGINT, if debug, or SIGHUP if not detached) shuts us down.
*/
signal(SIGTERM, net_shutdown);
#ifdef DEBUG
signal(SIGINT, net_shutdown);
#endif /* DEBUG */
+ if (!detached)
+ signal(SIGHUP, net_shutdown);
#endif /* POSIX_SIGNALS */
#if !USE_PTHREADS