diff options
| author | Jan Wieck | 2001-09-07 16:12:49 +0000 |
|---|---|---|
| committer | Jan Wieck | 2001-09-07 16:12:49 +0000 |
| commit | 7e26a8241d081ff7ba83f3093726639b9b6d1122 (patch) | |
| tree | dcd54e3cec412395f84b01b3ca55ec48a27d451d /src/backend/libpq/pqsignal.c | |
| parent | d9044b56379da6097310ebed45fb9e1a4db003af (diff) | |
Enable SIGTERM and SIGQUIT during client authentication so
the postmaster can kill the forked off processes when shutdown
is requested.
Jan
Diffstat (limited to 'src/backend/libpq/pqsignal.c')
| -rw-r--r-- | src/backend/libpq/pqsignal.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/backend/libpq/pqsignal.c b/src/backend/libpq/pqsignal.c index 9bdcd27b703..028db104089 100644 --- a/src/backend/libpq/pqsignal.c +++ b/src/backend/libpq/pqsignal.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.21 2001/08/24 14:07:49 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.22 2001/09/07 16:12:48 wieck Exp $ * * NOTES * This shouldn't be in libpq, but the monitor and some other @@ -61,6 +61,7 @@ pqinitmask(void) #ifdef HAVE_SIGPROCMASK sigemptyset(&UnBlockSig); sigfillset(&BlockSig); + sigfillset(&AuthBlockSig); /* * Unmark those signals that should never be blocked. Some of these @@ -69,27 +70,41 @@ pqinitmask(void) */ #ifdef SIGTRAP sigdelset(&BlockSig, SIGTRAP); + sigdelset(&AuthBlockSig, SIGTRAP); #endif #ifdef SIGABRT sigdelset(&BlockSig, SIGABRT); + sigdelset(&AuthBlockSig, SIGABRT); #endif #ifdef SIGILL sigdelset(&BlockSig, SIGILL); + sigdelset(&AuthBlockSig, SIGILL); #endif #ifdef SIGFPE sigdelset(&BlockSig, SIGFPE); + sigdelset(&AuthBlockSig, SIGFPE); #endif #ifdef SIGSEGV sigdelset(&BlockSig, SIGSEGV); + sigdelset(&AuthBlockSig, SIGSEGV); #endif #ifdef SIGBUS sigdelset(&BlockSig, SIGBUS); + sigdelset(&AuthBlockSig, SIGBUS); #endif #ifdef SIGSYS sigdelset(&BlockSig, SIGSYS); + sigdelset(&AuthBlockSig, SIGSYS); #endif #ifdef SIGCONT sigdelset(&BlockSig, SIGCONT); + sigdelset(&AuthBlockSig, SIGCONT); +#endif +#ifdef SIGTERM + sigdelset(&AuthBlockSig, SIGTERM); +#endif +#ifdef SIGQUIT + sigdelset(&AuthBlockSig, SIGQUIT); #endif #else UnBlockSig = 0; @@ -98,6 +113,10 @@ pqinitmask(void) sigmask(SIGINT) | sigmask(SIGUSR1) | sigmask(SIGUSR2) | sigmask(SIGCHLD) | sigmask(SIGWINCH) | sigmask(SIGFPE); + AuthBlockSig = sigmask(SIGHUP) | sigmask(SIGALRM) | + sigmask(SIGINT) | sigmask(SIGUSR1) | + sigmask(SIGUSR2) | sigmask(SIGCHLD) | + sigmask(SIGWINCH) | sigmask(SIGFPE); #endif } |
