X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Fwall-notify.c;h=0e77e97ecce2d8638fd91ec27cc83a88d6cec8ba;hb=702d46155ea3f168dea38e513748b15f256d8b2e;hp=95c4d8f8fad53d19534e449aff21b5c078914f30;hpb=5f81debda61d93b35c5aee600e895263a7b04ba6;p=wall-notify%2Fwall-notify.git diff --git a/src/wall-notify.c b/src/wall-notify.c index 95c4d8f..0e77e97 100644 --- a/src/wall-notify.c +++ b/src/wall-notify.c @@ -1,7 +1,7 @@ /* * Receive wall messages and pass them to a notification program via stdin. * - * Copyright (C) 2014 Simon Ruderich + * Copyright (C) 2014-2015 Simon Ruderich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -48,8 +48,13 @@ #endif +static sig_atomic_t signaled = 0; + + static void sig_handler(int signal) { (void)signal; + + signaled = 1; } static void setup_signals(void) { struct sigaction action; @@ -332,7 +337,7 @@ static void handle_wall(int fd, char **argv) { ssize_t r; assert(SSIZE_MAX <= SIZE_MAX); - while ((r = read(fd, buffer, sizeof(buffer))) > 0) { + while (!signaled && (r = read(fd, buffer, sizeof(buffer))) > 0) { size_t space; ssize_t r2;