summaryrefslogtreecommitdiff
path: root/imap4d/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'imap4d/signal.c')
-rw-r--r--imap4d/signal.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/imap4d/signal.c b/imap4d/signal.c
index c9dcfc56d..d71138e18 100644
--- a/imap4d/signal.c
+++ b/imap4d/signal.c
@@ -49,21 +49,25 @@ imap4d_master_signal (int signo)
RETSIGTYPE
imap4d_child_signal (int signo)
{
+ imap4d_child_signal_setup (SIG_IGN);
mu_diag_output (MU_DIAG_CRIT, _("got signal `%s'"), strsignal (signo));
-
switch (signo)
{
case SIGTERM:
case SIGHUP:
- imap4d_bye (ERR_TERMINATE);
-
+ signo = ERR_TERMINATE;
+ break;
+
case SIGALRM:
- imap4d_bye (ERR_TIMEOUT);
-
+ signo = ERR_TIMEOUT;
+ break;
+
case SIGPIPE:
- imap4d_bye (ERR_NO_OFILE);
+ signo = ERR_NO_OFILE;
+ break;
default:
- imap4d_bye (ERR_SIGNAL);
+ signo = ERR_SIGNAL;
}
+ imap4d_bye (signo);
}

Return to:

Send suggestions and report system problems to the System administrator.