summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormiau <miaukatzemiau@priveasy.de>2011-06-13 20:07:34 (GMT)
committermiau <miaukatzemiau@priveasy.de>2011-06-13 20:07:34 (GMT)
commit3bf67fb608da46615cc92ddd64022f3133c04071 (patch)
tree0b17abd38de2b4902b4fb8590cef7eeb4927c5a0
parent2a3cdbc40c3c9e1324706d18e0dead20f28b45d4 (diff)
listener: close fd on exec; not on exit
-rw-r--r--listener.c5
1 files changed, 2 insertions, 3 deletions
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;
}
contact: Jan Huwald // Impressum