aboutsummaryrefslogtreecommitdiffstats
path: root/src/player.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/player.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/player.c b/src/player.c
index 3bd6508ac..ecf7036f3 100644
--- a/src/player.c
+++ b/src/player.c
@@ -69,9 +69,11 @@ void resetPlayer() {
void player_sigChldHandler(int pid, int status) {
if(player_pid==pid) {
- if(WIFSIGNALED(status) && WTERMSIG(status)!=SIGTERM) {
- ERROR("player process died from a "
- "non-TERM signal: %i\n",
+ DEBUG("SIGCHLD caused by player process\n");
+ if(WIFSIGNALED(status) && WTERMSIG(status)!=SIGTERM &&
+ WTERMSIG(status)!=SIGINT)
+ {
+ ERROR("player process died from signal: %i\n",
WTERMSIG(status));
}
resetPlayer();
@@ -100,12 +102,11 @@ int playerInit() {
sa.sa_flags = 0;
sigemptyset(&sa.sa_mask);
- sa.sa_handler = SIG_IGN;
- sigaction(SIGPIPE,&sa,NULL);
- sigaction(SIGHUP,&sa,NULL);
+ finishSigHandlers();
sa.sa_handler = decodeSigHandler;
sigaction(SIGCHLD,&sa,NULL);
sigaction(SIGTERM,&sa,NULL);
+ sigaction(SIGINT,&sa,NULL);
close(listenSocket);
freeAllInterfaces();