diff options
author | miau <miaukatzemiau@priveasy.de> | 2011-06-13 20:07:34 (GMT) |
---|---|---|
committer | miau <miaukatzemiau@priveasy.de> | 2011-06-13 20:07:34 (GMT) |
commit | 3bf67fb608da46615cc92ddd64022f3133c04071 (patch) | |
tree | 0b17abd38de2b4902b4fb8590cef7eeb4927c5a0 | |
parent | 2a3cdbc40c3c9e1324706d18e0dead20f28b45d4 (diff) |
listener: close fd on exec; not on exit
-rw-r--r-- | listener.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -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; } |