X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Fwall-notify.c;h=efe500513f760cff017b631486c6cabfbf6094c2;hb=bcd8ae1311102a644bd6d0dc0774d824169027b5;hp=b06740b39e143ddadc00b645685b82dec8f90dd4;hpb=aedd26b3895f80a440abdd0951eae627808ae8ed;p=wall-notify%2Fwall-notify.git diff --git a/src/wall-notify.c b/src/wall-notify.c index b06740b..efe5005 100644 --- a/src/wall-notify.c +++ b/src/wall-notify.c @@ -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; @@ -425,7 +430,7 @@ int main(int argc, char **argv) { printf("%s%s\n", PACKAGE_STRING, strlen(GIT_VERSION) ? " (Git " GIT_VERSION ")" : ""); - exit(0); + exit(EXIT_SUCCESS); break; default: fprintf(stderr, "%s: unknown option '%s'!\n\n",