Rework para_accept().
[paraslash.git] / server.c
index 89a8137233c019df844f56d3a21bf841fd3fda15..2afb6db58de95906ba9bbd19f52a79ce054ae59d 100644 (file)
--- a/server.c
+++ b/server.c
@@ -366,12 +366,9 @@ static void command_post_select(struct sched *s, struct task *t)
        pid_t child_pid;
        uint32_t *chunk_table;
 
-       if (!FD_ISSET(sct->listen_fd, &s->rfds))
-               return;
-       ret = para_accept(sct->listen_fd, NULL, 0);
-       if (ret < 0)
+       ret = para_accept(sct->listen_fd, &s->rfds, NULL, 0, &new_fd);
+       if (ret <= 0)
                goto out;
-       new_fd = ret;
        peer_name = remote_name(new_fd);
        PARA_INFO_LOG("got connection from %s, forking\n", peer_name);
        mmd->num_connects++;