summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Lemon <source@isc.org>2001-08-08 14:46:14 +0000
committerTed Lemon <source@isc.org>2001-08-08 14:46:14 +0000
commitd5d6ec67ed77bbfb919c6a83c06a36627e71f633 (patch)
tree699e742e3e14c6948f417700cd31045bf4c61312
parenta215eddb24e628dedb0e921a1f833da3bd570732 (diff)
downloadisc-dhcp-d5d6ec67ed77bbfb919c6a83c06a36627e71f633.tar.gz
Oops, one more fix for the stdout script overwrite bug.
-rw-r--r--client/dhclient.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/client/dhclient.c b/client/dhclient.c
index c1077202..f1c0ddd3 100644
--- a/client/dhclient.c
+++ b/client/dhclient.c
@@ -41,7 +41,7 @@
#ifndef lint
static char ocopyright[] =
-"$Id: dhclient.c,v 1.129.2.6 2001/06/20 03:03:59 mellon Exp $ Copyright (c) 1995-2001 Internet Software Consortium. All rights reserved.\n";
+"$Id: dhclient.c,v 1.129.2.7 2001/08/08 14:46:14 mellon Exp $ Copyright (c) 1995-2001 Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@@ -2654,6 +2654,7 @@ void go_daemon ()
{
static int state = 0;
int pid;
+ int i;
/* Don't become a daemon if the user requested otherwise. */
if (no_daemon) {
@@ -2682,6 +2683,16 @@ void go_daemon ()
close(1);
close(2);
+ /* Reopen them on /dev/null. */
+ i = open ("/dev/null", O_RDWR);
+ if (i == 0)
+ i = open ("/dev/null", O_RDWR);
+ if (i == 1) {
+ i = open ("/dev/null", O_RDWR);
+ log_perror = 0; /* No sense logging to /dev/null. */
+ } else if (i != -1)
+ close (i);
+
write_client_pid_file ();
}