aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/udhcp/common.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
index bfdc7ba8d..8542c664c 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -59,15 +59,14 @@ void background(const char *pidfile)
59#else /* __uClinux__ */ 59#else /* __uClinux__ */
60 int pid_fd; 60 int pid_fd;
61 61
62 if (!pidfile) return; 62 /* hold lock during fork. */
63 63 if (pidfile) pid_fd = pidfile_acquire(pidfile);
64 pid_fd = pidfile_acquire(pidfile); /* hold lock during fork. */
65 if (daemon(0, 0) == -1) { 64 if (daemon(0, 0) == -1) {
66 perror("fork"); 65 perror("fork");
67 exit(1); 66 exit(1);
68 } 67 }
69 daemonized++; 68 daemonized++;
70 pidfile_write_release(pid_fd); 69 if (pidfile) pidfile_write_release(pid_fd);
71#endif /* __uClinux__ */ 70#endif /* __uClinux__ */
72} 71}
73 72
@@ -97,8 +96,10 @@ void start_log_and_pid(const char *client_server, const char *pidfile)
97 sanitize_fds(); 96 sanitize_fds();
98 97
99 /* do some other misc startup stuff while we are here to save bytes */ 98 /* do some other misc startup stuff while we are here to save bytes */
100 pid_fd = pidfile_acquire(pidfile); 99 if (pidfile) {
101 pidfile_write_release(pid_fd); 100 pid_fd = pidfile_acquire(pidfile);
101 pidfile_write_release(pid_fd);
102 }
102 103
103 /* equivelent of doing a fflush after every \n */ 104 /* equivelent of doing a fflush after every \n */
104 setlinebuf(stdout); 105 setlinebuf(stdout);