diff options
author | gdt <gdt> | 2004-07-13 15:47:25 +0200 |
---|---|---|
committer | gdt <gdt> | 2004-07-13 15:47:25 +0200 |
commit | b77971317724a97b72a8566b3a54d36ef7c76a07 (patch) | |
tree | 25e17e5ec53eb9625e2f872e3053913e10177973 /lib/sigevent.c | |
parent | Creating irdp socket requires more privileges. (diff) | |
download | frr-b77971317724a97b72a8566b3a54d36ef7c76a07.tar.xz frr-b77971317724a97b72a8566b3a54d36ef7c76a07.zip |
2004-07-13 Greg Troxel <gdt@poblano.ir.bbn.com>
* sigevent.c: Don't block SIGTRAP and SIGKILL. Blocking SIGTRAP
confuses gdb, at least on NetBSD 2.0_BETA, where the block
succeeds.
Diffstat (limited to 'lib/sigevent.c')
-rw-r--r-- | lib/sigevent.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/sigevent.c b/lib/sigevent.c index fa5edf4a7..6a2fd80c0 100644 --- a/lib/sigevent.c +++ b/lib/sigevent.c @@ -61,8 +61,15 @@ quagga_signal_timer (struct thread *t) sigm = THREAD_ARG (t); - /* block all signals */ + /* + * Block most signals, but be careful not to defer SIGTRAP because + * doing so breaks gdb, at least on NetBSD 2.0. Avoid asking to + * block SIGKILL, just because we shouldn't be able to do so. + */ sigfillset (&newmask); + sigdelset (&newmask, SIGTRAP); + sigdelset (&newmask, SIGKILL); + if ( (sigprocmask (SIG_BLOCK, &newmask, &oldmask)) < 0) { zlog_err ("quagga_signal_timer: couldnt block signals!"); |