diff options
Diffstat (limited to 'src/server.c')
| -rw-r--r-- | src/server.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server.c b/src/server.c index 8ea4516..3f4e9cc 100644 --- a/src/server.c +++ b/src/server.c @@ -335,9 +335,11 @@ static bool handle_child_req(int in_fd) if(read(in_fd, &sender_pid, sizeof(sender_pid)) != sizeof(sender_pid)) { sig_debugf("Couldn't get sender PID\n"); - goto fail; + return false; } + sig_debugf("Got request from PID %d\n", sender_pid); + size_t msglen; const struct child_request *req = NULL; size_t datalen; @@ -702,7 +704,8 @@ int main(int argc, char *argv[]) else { /* data from a child's pipe */ - handle_child_req(i); + if(!handle_child_req(i)) + FD_CLR(i, &active_fds); } } } |