X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=daemon.c;h=5100cf2f44d735c0e46aba74dff1504cc3c36ec6;hb=8ceba720ba5e5e76384e46629e599124c6f36409;hp=932d908bad3587b8ae7868112d587eaca775a303;hpb=f10e0e0b18c8e2e69535e7380fb3c1f9b097cfda;p=git.git diff --git a/daemon.c b/daemon.c index 932d908b..5100cf2f 100644 --- a/daemon.c +++ b/daemon.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -79,11 +80,11 @@ static unsigned int children_deleted = 0; static struct child { pid_t pid; - socklen_t addrlen; + int addrlen; struct sockaddr_storage address; } live_child[MAX_CHILDREN]; -static void add_child(int idx, pid_t pid, struct sockaddr *addr, socklen_t addrlen) +static void add_child(int idx, pid_t pid, struct sockaddr *addr, int addrlen) { live_child[idx].pid = pid; live_child[idx].addrlen = addrlen; @@ -177,7 +178,7 @@ static void check_max_connections(void) } } -static void handle(int incoming, struct sockaddr *addr, socklen_t addrlen) +static void handle(int incoming, struct sockaddr *addr, int addrlen) { pid_t pid = fork(); @@ -307,7 +308,7 @@ static int serve(int port) if (FD_ISSET(sockfd, &fds)) { struct sockaddr_storage ss; - socklen_t sslen = sizeof(ss); + int sslen = sizeof(ss); int incoming = accept(sockfd, (struct sockaddr *)&ss, &sslen); if (incoming < 0) { switch (errno) { @@ -352,8 +353,10 @@ int main(int argc, char **argv) usage(daemon_usage); } - if (inetd_mode) + if (inetd_mode) { + fclose(stderr); //FIXME: workaround return execute(); + } return serve(port); }