X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=daemon.c;h=f285a8c98ca9fbfc421b735f76f9d9f2248bd749;hb=c7ff5f1d7d6f103802fd6d6b1d4dcdf095e95d5f;hp=79e72e0bddc47c755b69886b9a97acc04896efe9;hpb=6573faff34eb002535843bbb59365be4ad58a120;p=git.git diff --git a/daemon.c b/daemon.c index 79e72e0b..f285a8c9 100644 --- a/daemon.c +++ b/daemon.c @@ -1,6 +1,5 @@ #include "cache.h" #include "pkt-line.h" -#include #include #include #include @@ -59,7 +58,7 @@ static void logreport(int priority, const char *err, va_list params) write(2, buf, buflen); } -void logerror(const char *err, ...) +static void logerror(const char *err, ...) { va_list params; va_start(params, err); @@ -67,7 +66,7 @@ void logerror(const char *err, ...) va_end(params); } -void loginfo(const char *err, ...) +static void loginfo(const char *err, ...) { va_list params; if (!verbose) @@ -379,7 +378,6 @@ static int socksetup(int port, int **socklist_p) { int socknum = 0, *socklist = NULL; int maxfd = -1; - fd_set fds_init, fds; char pbuf[NI_MAXSERV]; struct addrinfo hints, *ai0, *ai; @@ -396,8 +394,6 @@ static int socksetup(int port, int **socklist_p) if (gai) die("getaddrinfo() failed: %s\n", gai_strerror(gai)); - FD_ZERO(&fds_init); - for (ai = ai0; ai; ai = ai->ai_next) { int sockfd; int *newlist; @@ -436,7 +432,6 @@ static int socksetup(int port, int **socklist_p) socklist = newlist; socklist[socknum++] = sockfd; - FD_SET(sockfd, &fds_init); if (maxfd < sockfd) maxfd = sockfd; } @@ -468,9 +463,7 @@ static int socksetup(int port, int **socklist_p) return 0; } - *socklist_p = malloc(sizeof(int)); - if ( !*socklist_p ) - die("memory allocation failed: %s", strerror(errno)); + *socklist_p = xmalloc(sizeof(int)); **socklist_p = sockfd; } @@ -481,14 +474,14 @@ static int service_loop(int socknum, int *socklist) struct pollfd *pfd; int i; - pfd = calloc(socknum, sizeof(struct pollfd)); - if (!pfd) - die("memory allocation failed: %s", strerror(errno)); + pfd = xcalloc(socknum, sizeof(struct pollfd)); for (i = 0; i < socknum; i++) { pfd[i].fd = socklist[i]; pfd[i].events = POLLIN; } + + signal(SIGCHLD, child_handler); for (;;) { int i; @@ -505,7 +498,7 @@ static int service_loop(int socknum, int *socklist) for (i = 0; i < socknum; i++) { if (pfd[i].revents & POLLIN) { struct sockaddr_storage ss; - int sslen = sizeof(ss); + unsigned int sslen = sizeof(ss); int incoming = accept(pfd[i].fd, (struct sockaddr *)&ss, &sslen); if (incoming < 0) { switch (errno) { @@ -527,8 +520,6 @@ static int serve(int port) { int socknum, *socklist; - signal(SIGCHLD, child_handler); - socknum = socksetup(port, &socklist); if (socknum == 0) die("unable to allocate any listen sockets on port %u", port);