summaryrefslogtreecommitdiffstats
path: root/usr.sbin/route6d
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2003-08-17 17:29:54 +0000
committerume <ume@FreeBSD.org>2003-08-17 17:29:54 +0000
commita89d80761c211ae91acf3bbb1f6325202e1d2b40 (patch)
tree27670eaed3f026bfd9c1dbfeae33a9e479a139c1 /usr.sbin/route6d
parenta83c66546091896a9b16340b562592c60f272e9b (diff)
downloadFreeBSD-src-a89d80761c211ae91acf3bbb1f6325202e1d2b40.zip
FreeBSD-src-a89d80761c211ae91acf3bbb1f6325202e1d2b40.tar.gz
daemon() has to be called prior to file descriptor setups
(otherwise file descriptors could be closed mistakenly) Obtained from: KAME MFC after: 1 week
Diffstat (limited to 'usr.sbin/route6d')
-rw-r--r--usr.sbin/route6d/route6d.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/usr.sbin/route6d/route6d.c b/usr.sbin/route6d/route6d.c
index 696a9bc..e8d06bb 100644
--- a/usr.sbin/route6d/route6d.c
+++ b/usr.sbin/route6d/route6d.c
@@ -349,6 +349,14 @@ main(argc, argv)
nflag = 1;
fprintf(stderr, "No kernel update is allowed\n");
}
+
+ if (dflag == 0) {
+ if (daemon(0, 0) < 0) {
+ fatal("daemon");
+ /*NOTREACHED*/
+ }
+ }
+
openlog(progname, LOG_NDELAY|LOG_PID, LOG_DAEMON);
logopened++;
@@ -389,21 +397,6 @@ main(argc, argv)
if (dflag)
ifrtdump(0);
- if (dflag == 0) {
-#if 1
- if (daemon(0, 0) < 0) {
- fatal("daemon");
- /*NOTREACHED*/
- }
-#else
- if (fork())
- exit(0);
- if (setsid() < 0) {
- fatal("setid");
- /*NOTREACHED*/
- }
-#endif
- }
pid = getpid();
if ((pidfile = fopen(ROUTE6D_PID, "w")) != NULL) {
fprintf(pidfile, "%d\n", pid);
OpenPOWER on IntegriCloud