From 3bf67fb608da46615cc92ddd64022f3133c04071 Mon Sep 17 00:00:00 2001 From: miau Date: Mon, 13 Jun 2011 22:07:34 +0200 Subject: listener: close fd on exec; not on exit diff --git a/listener.c b/listener.c index 7aa0b26..af6a915 100644 --- a/listener.c +++ b/listener.c @@ -70,7 +70,7 @@ int main(int argc, char *argv[], char *envp[]) freeaddrinfo(servinfo); - + // receive loop addr_len = sizeof their_addr; while ((numbytes = recvfrom(sockfd, buf, MAXBUFLEN-1 , 0, (struct sockaddr *)&their_addr, &addr_len)) != -1) { @@ -86,7 +86,7 @@ int main(int argc, char *argv[], char *envp[]) switch (fork()) { case 0: - // TODO: clean file descriptors + close(sockfd); // close socket handler, leave std io execve(task, cl_argv, envp); perror("exec"); exit(-1); @@ -99,7 +99,6 @@ int main(int argc, char *argv[], char *envp[]) } perror("recvfrom"); - close(sockfd); return -1; } -- cgit v0.10.1