[BusyBox] [PATCH] add udhcpd --foreground option

vda vda at port.imtp.ilyichevsk.odessa.ua
Mon Feb 2 09:52:18 UTC 2004


I want this because I run my daemons under daemontools.
Patch against pre6. Tested.
--
vda

--- busybox-1.00-pre6/networking/udhcp/dhcpd.c.orig	Sat Jan 31 01:45:12 2004
+++ busybox-1.00-pre6/networking/udhcp/dhcpd.c	Mon Feb  2 11:50:25 2004
@@ -35,6 +35,7 @@
 #include <sys/ioctl.h>
 #include <time.h>
 #include <sys/time.h>
+#include <getopt.h>
 
 #include "dhcpd.h"
 #include "arpping.h"
@@ -70,7 +71,33 @@
 	struct dhcpOfferedAddr *lease;
 	int max_sock;
 	unsigned long num_ips;
-
+	int daemonize = 1;
+
+	static const struct option arg_options[] = {
+		{"foreground",  no_argument, 0, 'f'},
+		{0, 0, 0, 0}
+	};
+
+	/* get options */
+	while (1) {
+		int option_index = 0;
+		int c = getopt_long(argc, argv, "f", arg_options, &option_index);
+		if (c == -1) {
+			argv += optind-1;
+			argc -= optind-1;
+			break;
+		}
+
+		switch (c) {
+		case 'f':
+			daemonize = 0;
+			break;
+		default:
+			/* add an error msg here */
+			return 1;
+		}
+	}
+
 	memset(&server_config, 0, sizeof(struct server_config_t));
 	read_config(argc < 2 ? DHCPD_CONF_FILE : argv[1]);

@@ -100,7 +127,8 @@
 		return 1;
 
 #ifndef UDHCP_DEBUG
-	background(server_config.pidfile); /* hold lock during fork. */
+	if(daemonize)
+		background(server_config.pidfile); /* hold lock during fork. */
 #endif

 	/* Setup the signal pipe */
@@ -249,4 +277,3 @@

 	return 0;
 }
-




More information about the busybox mailing list