summaryrefslogtreecommitdiffstats
path: root/imap
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>1999-12-01 09:39:04 +0000
committerThomas Roessler <roessler@does-not-exist.org>1999-12-01 09:39:04 +0000
commit67753c3ac2005c41d8e3a28a79be7dfb97bdff36 (patch)
tree161f90c95f16376214afede3bdfc8868ee179abe /imap
parent2fdb0604cf34d35a98e609b039ec11556ec1fb71 (diff)
Re-set the list of blocked signals after the imap_keepalive stuff.
Diffstat (limited to 'imap')
-rw-r--r--imap/util.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/imap/util.c b/imap/util.c
index 4c31b109..4e98f46e 100644
--- a/imap/util.c
+++ b/imap/util.c
@@ -319,6 +319,7 @@ int imap_wait_keepalive (pid_t pid)
{
struct sigaction oldalrm;
struct sigaction act;
+ sigset_t oldblocked;
int rc;
short imap_passive = option (OPTIMAPPASSIVE);
@@ -326,6 +327,8 @@ int imap_wait_keepalive (pid_t pid)
set_option (OPTIMAPPASSIVE);
set_option (OPTKEEPQUIET);
+ sigprocmask (SIG_BLOCK, NULL, &oldblocked);
+
sigemptyset (&act.sa_mask);
act.sa_handler = alrm_handler;
#ifdef SA_INTERRUPT
@@ -348,6 +351,7 @@ int imap_wait_keepalive (pid_t pid)
}
sigaction (SIGALRM, &oldalrm, NULL);
+ sigprocmask (SIG_BLOCK, &oldblocked, NULL);
unset_option (OPTKEEPQUIET);
if (!imap_passive)