diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-10-26 21:38:18 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-10-26 21:38:18 +0000 |
commit | a8b1379ccbfbe7f1d7732147c4969bb92499555d (patch) | |
tree | 17a3c083aa823e3e13de493a4017cff9da3b65a8 /server.c | |
parent | 6b804f3a4aaffc26d419b3ad7f96bd54456cdfc5 (diff) | |
download | rtmux-a8b1379ccbfbe7f1d7732147c4969bb92499555d.tar.gz rtmux-a8b1379ccbfbe7f1d7732147c4969bb92499555d.tar.bz2 rtmux-a8b1379ccbfbe7f1d7732147c4969bb92499555d.zip |
Clear signal flags /before/ taking action and continue afterwards to reduce
chance of dropping signals. Pointed out by deraadt@.
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -328,15 +328,17 @@ server_main(int srv_fd) /* Handle child exit. */ if (sigchld) { - server_child_signal(); sigchld = 0; + server_child_signal(); + continue; } /* Recreate socket on SIGUSR1. */ if (sigusr1) { + sigusr1 = 0; close(srv_fd); srv_fd = server_create_socket(); - sigusr1 = 0; + continue; } /* Initialise pollfd array and add server socket. */ |