diff options
author | wtc%netscape.com <devnull@localhost> | 2002-02-01 05:57:49 +0000 |
---|---|---|
committer | wtc%netscape.com <devnull@localhost> | 2002-02-01 05:57:49 +0000 |
commit | c0fe98b2a7598c4335d391aef8980e2e2ce64359 (patch) | |
tree | 90c45feb5fa6390a2a70e71334b2b653c70378d2 | |
parent | f1cac50a95787812033784c933a7fc4b126bf862 (diff) | |
download | nss-hg-c0fe98b2a7598c4335d391aef8980e2e2ce64359.tar.gz |
Bugzilla bug 119340: install a SIGTERM handler on Linux for debugging.
-rw-r--r-- | security/nss/cmd/selfserv/selfserv.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/security/nss/cmd/selfserv/selfserv.c b/security/nss/cmd/selfserv/selfserv.c index 185aa92a5..c4f335167 100644 --- a/security/nss/cmd/selfserv/selfserv.c +++ b/security/nss/cmd/selfserv/selfserv.c @@ -1374,6 +1374,17 @@ WaitForDebugger(void) } #endif +#ifdef LINUX /* bug 119340 */ +#include <signal.h> + +static void sigterm_handler(int signum) +{ + static char err_msg[] = "selfserv: received SIGTERM\n"; + write(2, err_msg, sizeof(err_msg) - 1); + _exit(1); +} +#endif /* LINUX */ + int main(int argc, char **argv) { @@ -1400,6 +1411,17 @@ main(int argc, char **argv) PLOptState *optstate; PLOptStatus status; PRThread *loggerThread; +#ifdef LINUX /* bug 119340 */ + struct sigaction act; + + act.sa_handler = sigterm_handler; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + if (sigaction(SIGTERM, &act, NULL) == -1) { + fprintf(stderr, "selfserv: sigaction failed: %d\n", errno); + exit(1); + } +#endif /* LINUX */ tmp = strrchr(argv[0], '/'); |