summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Friesel <derf@derf.homelinux.org>2010-06-09 11:22:54 +0200
committerDaniel Friesel <derf@derf.homelinux.org>2010-06-09 11:22:54 +0200
commit5d1564dff78fc76471913da8c55cc0c90f25d0f8 (patch)
treeeb88b30cd661e08a9bedb970feb1900c090f81b4 /src
parent78a066bc2f66367f590425828ebc5bae32bb8407 (diff)
error checking in signals.c + Add signals to documentation
Diffstat (limited to 'src')
-rw-r--r--src/signals.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/signals.c b/src/signals.c
index 4e51c77..eca77e6 100644
--- a/src/signals.c
+++ b/src/signals.c
@@ -34,15 +34,26 @@ void setup_signal_handlers()
sigset_t feh_ss;
D_ENTER(4);
- sigemptyset(&feh_ss);
- sigaddset(&feh_ss, SIGUSR1);
- sigaddset(&feh_ss, SIGUSR2);
+ if (
+ (sigemptyset(&feh_ss) == -1) ||
+ (sigaddset(&feh_ss, SIGUSR1) == -1) ||
+ (sigaddset(&feh_ss, SIGUSR2) == -1))
+ {
+ weprintf("Failed to set up signal mask, SIGUSR1/2 won't work");
+ D_RETURN_(4);
+ }
feh_sh.sa_handler = feh_handle_signal;
feh_sh.sa_mask = feh_ss;
- sigaction(SIGUSR1, &feh_sh, NULL);
- sigaction(SIGUSR2, &feh_sh, NULL);
+ if (
+ (sigaction(SIGUSR1, &feh_sh, NULL) == -1) ||
+ (sigaction(SIGUSR2, &feh_sh, NULL) == -1))
+ {
+ weprintf("Failed to set up signal handler, SIGUSR1/2 won't work");
+ D_RETURN_(4);
+ }
+
D_RETURN_(4);
}