diff options
-rw-r--r-- | dhcp6c.c | 7 | ||||
-rw-r--r-- | dhcp6relay.c | 6 | ||||
-rw-r--r-- | dhcp6s.c | 5 |
3 files changed, 17 insertions, 1 deletions
@@ -159,6 +159,7 @@ main(argc, argv) char *progname; FILE *pidfp; struct dhcp6_if *ifp; + int fd; #ifndef HAVE_ARC4RANDOM srandom(time(NULL) & getpid()); @@ -205,8 +206,12 @@ main(argc, argv) exit(0); } - if (foreground == 0) + if (foreground == 0) { + for (fd = 3; fd < 1024; fd++) + close(fd); + openlog(progname, LOG_NDELAY|LOG_PID, LOG_DAEMON); + } setloglevel(debug); diff --git a/dhcp6relay.c b/dhcp6relay.c index fb84ce3..eb0bce9 100644 --- a/dhcp6relay.c +++ b/dhcp6relay.c @@ -207,8 +207,14 @@ main(argc, argv) } if (foreground == 0) { + int fd; + if (daemon(0, 0) < 0) err(1, "daemon"); + + for (fd = 3; fd < 1024; fd++) + close(fd); + openlog(progname, LOG_NDELAY|LOG_PID, LOG_DAEMON); } setloglevel(debug); @@ -316,8 +316,13 @@ main(argc, argv) } if (foreground == 0) { + int fd; + if (daemon(0, 0) < 0) err(1, "daemon"); + + for (fd = 3; fd < 1024; fd++) + close(fd); } /* dump current PID */ |