make pidfile writing configurable.
[ui]toa_to_buf: change API. No users yet.
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
index 7b2e19c..46cc034 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -22,47 +22,35 @@
 	return info.uptime;
 }
 
-
+#if ENABLE_FEATURE_PIDFILE
 static const char *saved_pidfile;
 
 static void pidfile_delete(void)
 {
 	if (saved_pidfile)
-		unlink(saved_pidfile);
+		remove_pidfile(saved_pidfile);
 }
+#endif
 
-static int pidfile_acquire(const char *pidfile)
+static void create_pidfile(const char *pidfile)
 {
-	int pid_fd;
-	if (!pidfile) return -1;
+	if (!pidfile)
+		return;
 
-	pid_fd = open(pidfile, O_CREAT|O_WRONLY|O_TRUNC, 0644);
-	if (pid_fd < 0) {
-		bb_perror_msg("cannot open pidfile %s", pidfile);
-	} else {
-		/* lockf(pid_fd, F_LOCK, 0); */
-		if (!saved_pidfile)
-			atexit(pidfile_delete);
-		saved_pidfile = pidfile;
+	if (!write_pidfile(pidfile)) {
+		bb_perror_msg("cannot create pidfile %s", pidfile);
+		return;
 	}
-
-	return pid_fd;
+#if ENABLE_FEATURE_PIDFILE
+	/* lockf(pid_fd, F_LOCK, 0); */
+	if (!saved_pidfile)
+		atexit(pidfile_delete);
+	saved_pidfile = pidfile;
+#endif
 }
 
-static void pidfile_write_release(int pid_fd)
-{
-	if (pid_fd < 0) return;
-
-	fdprintf(pid_fd, "%d\n", getpid());
-	/* lockf(pid_fd, F_UNLCK, 0); */
-	close(pid_fd);
-}
-
-
 void udhcp_make_pidfile(const char *pidfile)
 {
-	int pid_fd;
-
 	/* Make sure fd 0,1,2 are open */
 	bb_sanitize_stdio();
 
@@ -70,8 +58,7 @@
 	setlinebuf(stdout);
 
 	/* Create pidfile */
-	pid_fd = pidfile_acquire(pidfile);
-	pidfile_write_release(pid_fd);
+	create_pidfile(pidfile);
 
 	bb_info_msg("%s (v%s) started", applet_name, BB_VER);
 }