Patch from Tony J. White to allow paths to be configured
This commit is contained in:
		
							
								
								
									
										333
									
								
								patches/udhcp_config_paths.diff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										333
									
								
								patches/udhcp_config_paths.diff
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,333 @@
 | 
			
		||||
Index: include/usage.h
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/include/usage.h,v
 | 
			
		||||
retrieving revision 1.191
 | 
			
		||||
diff -u -r1.191 usage.h
 | 
			
		||||
--- a/include/usage.h	25 Feb 2004 10:35:55 -0000	1.191
 | 
			
		||||
+++ b/include/usage.h	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -2606,7 +2606,8 @@
 | 
			
		||||
 	"\t-p,\t--pidfile=file\tStore process ID of daemon in file\n" \
 | 
			
		||||
 	"\t-q,\t--quit\tQuit after obtaining lease\n" \
 | 
			
		||||
 	"\t-r,\t--request=IP\tIP address to request (default: none)\n" \
 | 
			
		||||
-	"\t-s,\t--script=file\tRun file at dhcp events (default: /usr/share/udhcpc/default.script)\n" \
 | 
			
		||||
+	"\t-s,\t--script=file\tRun file at dhcp events (default: " \
 | 
			
		||||
+	CONFIG_UDHCPC_SCRIPT_PATH ")\n" \
 | 
			
		||||
 	"\t-v,\t--version\tDisplay version"
 | 
			
		||||
 
 | 
			
		||||
 #define udhcpd_trivial_usage \
 | 
			
		||||
Index: networking/udhcp/AUTHORS
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/AUTHORS,v
 | 
			
		||||
retrieving revision 1.3
 | 
			
		||||
diff -u -r1.3 AUTHORS
 | 
			
		||||
--- a/networking/udhcp/AUTHORS	18 Dec 2003 22:25:38 -0000	1.3
 | 
			
		||||
+++ b/networking/udhcp/AUTHORS	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -10,5 +10,5 @@
 | 
			
		||||
 Moreton Bay	(http://www.moretonbay.com/)
 | 
			
		||||
 Lineo		(http://opensource.lineo.com)
 | 
			
		||||
 Vladimir Oleynik <dzo@simtrea.ru> Size optimizations
 | 
			
		||||
-
 | 
			
		||||
+Tony J. White <tjw@tjw.org> additional busybox build options
 | 
			
		||||
 
 | 
			
		||||
Index: networking/udhcp/Config.in
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/Config.in,v
 | 
			
		||||
retrieving revision 1.5
 | 
			
		||||
diff -u -r1.5 Config.in
 | 
			
		||||
--- a/networking/udhcp/Config.in	22 Oct 2003 09:58:38 -0000	1.5
 | 
			
		||||
+++ b/networking/udhcp/Config.in	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -58,5 +58,62 @@
 | 
			
		||||
 
 | 
			
		||||
 	  See http://udhcp.busybox.net for further details.
 | 
			
		||||
 
 | 
			
		||||
+menu "udhcpd Configuration Options"
 | 
			
		||||
+	depends on CONFIG_UDHCPD
 | 
			
		||||
+	
 | 
			
		||||
+config CONFIG_UDHCPD_CONF_PATH
 | 
			
		||||
+	string "Path to default udhcpd.conf"
 | 
			
		||||
+	default "/etc/udhcpd.conf" 
 | 
			
		||||
+	depends on CONFIG_UDHCPD 
 | 
			
		||||
+	help
 | 
			
		||||
+	  The full path to udhcpd's default configuration file.
 | 
			
		||||
+	  (default is: /etc/udhcpd.conf)
 | 
			
		||||
+
 | 
			
		||||
+config CONFIG_UDHCPD_LEASE_PATH
 | 
			
		||||
+	string "Path to default udhcpd.leases"
 | 
			
		||||
+	default "/var/lib/misc/udhcpd.leases" 
 | 
			
		||||
+	depends on CONFIG_UDHCPD 
 | 
			
		||||
+	help
 | 
			
		||||
+	  The full path to udhcpd's default leases file.
 | 
			
		||||
+	  (default is: /var/lib/misc/udhcpd.leases)
 | 
			
		||||
+
 | 
			
		||||
+config CONFIG_UDHCPD_PID_PATH
 | 
			
		||||
+	string "Path to default udhcpd PID file"
 | 
			
		||||
+	default "/var/run/udhcpd.pid" 
 | 
			
		||||
+	depends on CONFIG_UDHCPD 
 | 
			
		||||
+	help
 | 
			
		||||
+	  The full path to udhcpd's default pid file.
 | 
			
		||||
+	  (default is: /var/run/udhcpd.pid)
 | 
			
		||||
+
 | 
			
		||||
+endmenu
 | 
			
		||||
+
 | 
			
		||||
+menu "udhcpc Configuration Options"
 | 
			
		||||
+	depends on CONFIG_UDHCPC
 | 
			
		||||
+
 | 
			
		||||
+config CONFIG_UDHCPC_SCRIPT_PATH
 | 
			
		||||
+	string "Path to default udhcpc event script"
 | 
			
		||||
+	depends on CONFIG_UDHCPC
 | 
			
		||||
+	help
 | 
			
		||||
+	  The full path to udhcpc's default event script file.
 | 
			
		||||
+	  (default is: /usr/share/udhcpc/default.script OR
 | 
			
		||||
+	  /share/udhcpc/default.script if CONFIG_INSTALL_NO_USR is set)
 | 
			
		||||
+	  
 | 
			
		||||
+	  When udhcpc is started it executes this script to take care
 | 
			
		||||
+	  of system tasks after it completes DHCP communication.  Such
 | 
			
		||||
+	  tasks include putting network interfaces up or down, setting 
 | 
			
		||||
+	  DNS info, adding routing information, etc.
 | 
			
		||||
+
 | 
			
		||||
+if CONFIG_INSTALL_NO_USR
 | 
			
		||||
+config CONFIG_UDHCPC_SCRIPT_PATH
 | 
			
		||||
+	default "/share/udhcpc/default.script" 
 | 
			
		||||
+endif
 | 
			
		||||
+
 | 
			
		||||
+if !CONFIG_INSTALL_NO_USR
 | 
			
		||||
+config CONFIG_UDHCPC_SCRIPT_PATH
 | 
			
		||||
+	default "/usr/share/udhcpc/default.script" 
 | 
			
		||||
+endif
 | 
			
		||||
+	
 | 
			
		||||
+endmenu
 | 
			
		||||
+
 | 
			
		||||
 endmenu
 | 
			
		||||
 
 | 
			
		||||
Index: networking/udhcp/README
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/README,v
 | 
			
		||||
retrieving revision 1.3
 | 
			
		||||
diff -u -r1.3 README
 | 
			
		||||
--- a/networking/udhcp/README	18 Dec 2003 22:25:38 -0000	1.3
 | 
			
		||||
+++ b/networking/udhcp/README	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -9,27 +9,42 @@
 | 
			
		||||
 compile time options
 | 
			
		||||
 -------------------
 | 
			
		||||
 
 | 
			
		||||
-The Makefile contains three of the compile time options:
 | 
			
		||||
+The following options can be adjusted when configuring busybox:
 | 
			
		||||
 	
 | 
			
		||||
-	UDHCP_DEBUG: If UDHCP_DEBUG is defined, udhcpd will output extra
 | 
			
		||||
-	debugging output, compile with -g, and not fork to the background when
 | 
			
		||||
-	run.
 | 
			
		||||
-	UDHCP_SYSLOG: If UDHCP_SYSLOG is defined, udhcpd will log all its
 | 
			
		||||
-	messages syslog, otherwise, it will attempt to log them to stdout.
 | 
			
		||||
-	
 | 
			
		||||
-	COMBINED_BINARY: If COMBINED_BINARY is define, one binary, udhcpd,
 | 
			
		||||
-	is created. If called as udhcpd, the dhcp server will be started.
 | 
			
		||||
-	If called as udhcpc, the dhcp client will be started.
 | 
			
		||||
-	
 | 
			
		||||
-dhcpd.h contains the other three compile time options:
 | 
			
		||||
-	
 | 
			
		||||
-	LEASE_TIME: The default lease time if not specified in the config
 | 
			
		||||
-	file.
 | 
			
		||||
+	CONFIG_FEATURE_UDHCP_DEBUG: 
 | 
			
		||||
+	  If this is defined, udhcpd will output extra debugging output, 
 | 
			
		||||
+	  compile with -g, and not fork to the background when run.
 | 
			
		||||
 
 | 
			
		||||
-	LEASES_FILE: The default file for storing leases.
 | 
			
		||||
-	
 | 
			
		||||
-	DHCPD_CONFIG_FILE: The defualt config file to use.
 | 
			
		||||
+	CONFIG_FEATURE_UDHCP_SYSLOG: 
 | 
			
		||||
+	  If this is defined, udhcpd will log all its messages syslog, 
 | 
			
		||||
+	  otherwise, it will attempt to log them to stdout.
 | 
			
		||||
+
 | 
			
		||||
+	CONFIG_UDHCPD_CONF_PATH:
 | 
			
		||||
+	  The full path to udhcpd's default configuration file.
 | 
			
		||||
+
 | 
			
		||||
+	CONFIG_UDHCPD_LEASE_PATH:
 | 
			
		||||
+	  The full path to udhcpd's default leases file.
 | 
			
		||||
+
 | 
			
		||||
+	CONFIG_UDHCPD_PID_PATH:
 | 
			
		||||
+	  The full path to udhcpd's default pid file.
 | 
			
		||||
+
 | 
			
		||||
+	CONFIG_UDHCPC_SCRIPT_PATH:
 | 
			
		||||
+	  The full path to udhcpc's default event script file.
 | 
			
		||||
+	  (default is: /usr/share/udhcpc/default.script)
 | 
			
		||||
+
 | 
			
		||||
+	  When udhcpc is started it executes this script to take care
 | 
			
		||||
+	  of system tasks after it completes DHCP communication.  Such
 | 
			
		||||
+	  tasks include putting network interfaces up or down, setting
 | 
			
		||||
+	  DNS info, adding routing information, etc.
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+dhcpd.h contains the another compile time option:
 | 
			
		||||
 	
 | 
			
		||||
+	LEASE_TIME: 
 | 
			
		||||
+	  The default lease time if not specified in the config file. 
 | 
			
		||||
+	  This option can also be changed at runtime with the 'lease' 
 | 
			
		||||
+	  configuration option. 
 | 
			
		||||
+
 | 
			
		||||
 options.c contains a set of dhcp options for the client:
 | 
			
		||||
 
 | 
			
		||||
 	name[10]: The name of the option as it will appear in scripts
 | 
			
		||||
Index: networking/udhcp/README.udhcpc
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/README.udhcpc,v
 | 
			
		||||
retrieving revision 1.3
 | 
			
		||||
diff -u -r1.3 README.udhcpc
 | 
			
		||||
--- a/networking/udhcp/README.udhcpc	11 Dec 2002 21:12:44 -0000	1.3
 | 
			
		||||
+++ b/networking/udhcp/README.udhcpc	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -23,7 +23,8 @@
 | 
			
		||||
 -q, --quit                      Quit after obtaining lease
 | 
			
		||||
 -r, --request=IP                IP address to request (default: none)
 | 
			
		||||
 -s, --script=file               Run file at dhcp events (default:
 | 
			
		||||
-                                /usr/share/udhcpc/default.script)
 | 
			
		||||
+                                /usr/share/udhcpc/default.script or
 | 
			
		||||
+				CONFIG_UDHCPC_SCRIPT_PATH at build time)
 | 
			
		||||
 -v, --version                   Display version
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
Index: networking/udhcp/README.udhcpd
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/README.udhcpd,v
 | 
			
		||||
retrieving revision 1.1
 | 
			
		||||
diff -u -r1.1 README.udhcpd
 | 
			
		||||
--- a/networking/udhcp/README.udhcpd	31 Oct 2002 19:21:27 -0000	1.1
 | 
			
		||||
+++ b/networking/udhcp/README.udhcpd	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -50,10 +50,14 @@
 | 
			
		||||
 
 | 
			
		||||
 compile time options
 | 
			
		||||
 -------------------
 | 
			
		||||
+
 | 
			
		||||
+During busybox configuration, you can change the default paths for 
 | 
			
		||||
+udhcpd.conf, udhcpd.leases, and udhcpd.pid files.  See README for 
 | 
			
		||||
+more details.
 | 
			
		||||
 	
 | 
			
		||||
-dhcpd.h contains the other two compile time options:
 | 
			
		||||
+dhcpd.h contains the compile time option:
 | 
			
		||||
 	
 | 
			
		||||
 	LEASE_TIME: The default lease time if not specified in the config
 | 
			
		||||
 	file.
 | 
			
		||||
+
 | 
			
		||||
 	
 | 
			
		||||
-	DHCPD_CONFIG_FILE: The defualt config file to use.
 | 
			
		||||
Index: networking/udhcp/dhcpc.h
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/dhcpc.h,v
 | 
			
		||||
retrieving revision 1.4
 | 
			
		||||
diff -u -r1.4 dhcpc.h
 | 
			
		||||
--- a/networking/udhcp/dhcpc.h	30 Jan 2004 23:45:12 -0000	1.4
 | 
			
		||||
+++ b/networking/udhcp/dhcpc.h	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -2,7 +2,11 @@
 | 
			
		||||
 #ifndef _DHCPC_H
 | 
			
		||||
 #define _DHCPC_H
 | 
			
		||||
 
 | 
			
		||||
-#define DEFAULT_SCRIPT  "/usr/share/udhcpc/default.script"
 | 
			
		||||
+#ifdef CONFIG_UDHCPC_SCRIPT_PATH
 | 
			
		||||
+ #define DEFAULT_SCRIPT  CONFIG_UDHCPC_SCRIPT_PATH
 | 
			
		||||
+#else
 | 
			
		||||
+ #define DEFAULT_SCRIPT  "/usr/share/udhcpc/default.script"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* allow libbb_udhcp.h to redefine DEFAULT_SCRIPT */
 | 
			
		||||
 #include "libbb_udhcp.h"
 | 
			
		||||
Index: networking/udhcp/dhcpd.c
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/dhcpd.c,v
 | 
			
		||||
retrieving revision 1.5
 | 
			
		||||
diff -u -r1.5 dhcpd.c
 | 
			
		||||
--- a/networking/udhcp/dhcpd.c	30 Jan 2004 23:45:12 -0000	1.5
 | 
			
		||||
+++ b/networking/udhcp/dhcpd.c	5 Mar 2004 13:20:11 -0000
 | 
			
		||||
@@ -70,6 +70,13 @@
 | 
			
		||||
 	struct dhcpOfferedAddr *lease;
 | 
			
		||||
 	int max_sock;
 | 
			
		||||
 	unsigned long num_ips;
 | 
			
		||||
+	int daemonize = 1;
 | 
			
		||||
+	
 | 
			
		||||
+	while (strcmp(argv[1],"-f")==0 || strcmp(argv[1],"--foreground")==0) {
 | 
			
		||||
+		daemonize = 0;
 | 
			
		||||
+		argv++;
 | 
			
		||||
+		argc--;
 | 
			
		||||
+	}
 | 
			
		||||
 	
 | 
			
		||||
 	memset(&server_config, 0, sizeof(struct server_config_t));
 | 
			
		||||
 	read_config(argc < 2 ? DHCPD_CONF_FILE : argv[1]);
 | 
			
		||||
@@ -99,9 +106,8 @@
 | 
			
		||||
 			   &server_config.server, server_config.arp) < 0)
 | 
			
		||||
 		return 1;
 | 
			
		||||
 
 | 
			
		||||
-#ifndef UDHCP_DEBUG
 | 
			
		||||
-	background(server_config.pidfile); /* hold lock during fork. */
 | 
			
		||||
-#endif
 | 
			
		||||
+	if(daemonize)
 | 
			
		||||
+		background(server_config.pidfile); /* hold lock during fork. */
 | 
			
		||||
 
 | 
			
		||||
 	/* Setup the signal pipe */
 | 
			
		||||
 	udhcp_sp_setup();
 | 
			
		||||
Index: networking/udhcp/dhcpd.h
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/dhcpd.h,v
 | 
			
		||||
retrieving revision 1.5
 | 
			
		||||
diff -u -r1.5 dhcpd.h
 | 
			
		||||
--- a/networking/udhcp/dhcpd.h	30 Jan 2004 23:45:12 -0000	1.5
 | 
			
		||||
+++ b/networking/udhcp/dhcpd.h	5 Mar 2004 13:20:12 -0000
 | 
			
		||||
@@ -15,11 +15,25 @@
 | 
			
		||||
 
 | 
			
		||||
 /* the period of time the client is allowed to use that address */
 | 
			
		||||
 #define LEASE_TIME              (60*60*24*10) /* 10 days of seconds */
 | 
			
		||||
-#define LEASES_FILE		"/var/lib/misc/udhcpd.leases"
 | 
			
		||||
+
 | 
			
		||||
+#ifdef CONFIG_UDHCPD_LEASE_PATH
 | 
			
		||||
+ #define LEASES_FILE            CONFIG_UDHCPD_LEASE_PATH
 | 
			
		||||
+#else
 | 
			
		||||
+ #define LEASES_FILE		"/var/lib/misc/udhcpd.leases"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* where to find the DHCP server configuration file */
 | 
			
		||||
-#define DHCPD_CONF_FILE         "/etc/udhcpd.conf"
 | 
			
		||||
+#ifdef CONFIG_UDHCPD_CONF_PATH
 | 
			
		||||
+ #define DHCPD_CONF_FILE         CONFIG_UDHCPD_CONF_PATH
 | 
			
		||||
+#else
 | 
			
		||||
+ #define DHCPD_CONF_FILE         "/etc/udhcpd.conf"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
+#ifdef CONFIG_UDHCPD_PID_PATH
 | 
			
		||||
+ #define DHCPD_PID_FILE         CONFIG_UDHCPD_PID_PATH
 | 
			
		||||
+#else
 | 
			
		||||
+ #define DHCPD_PID_FILE         "/var/run/udhcpd.pid"
 | 
			
		||||
+#endif
 | 
			
		||||
 /*****************************************************************/
 | 
			
		||||
 /* Do not modify below here unless you know what you are doing!! */
 | 
			
		||||
 /*****************************************************************/
 | 
			
		||||
Index: networking/udhcp/files.c
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/files.c,v
 | 
			
		||||
retrieving revision 1.13
 | 
			
		||||
diff -u -r1.13 files.c
 | 
			
		||||
--- a/networking/udhcp/files.c	30 Jan 2004 23:45:12 -0000	1.13
 | 
			
		||||
+++ b/networking/udhcp/files.c	5 Mar 2004 13:20:13 -0000
 | 
			
		||||
@@ -166,7 +166,7 @@
 | 
			
		||||
 	{"offer_time",	read_u32, &(server_config.offer_time),	"60"},
 | 
			
		||||
 	{"min_lease",	read_u32, &(server_config.min_lease),	"60"},
 | 
			
		||||
 	{"lease_file",	read_str, &(server_config.lease_file),	LEASES_FILE},
 | 
			
		||||
-	{"pidfile",	read_str, &(server_config.pidfile),	"/var/run/udhcpd.pid"},
 | 
			
		||||
+	{"pidfile",	read_str, &(server_config.pidfile),	DHCPD_PID_FILE},
 | 
			
		||||
 	{"notify_file", read_str, &(server_config.notify_file),	""},
 | 
			
		||||
 	{"siaddr",	read_ip,  &(server_config.siaddr),	"0.0.0.0"},
 | 
			
		||||
 	{"sname",	read_str, &(server_config.sname),	""},
 | 
			
		||||
Index: networking/udhcp/libbb_udhcp.h
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /var/cvs/busybox/networking/udhcp/libbb_udhcp.h,v
 | 
			
		||||
retrieving revision 1.5
 | 
			
		||||
diff -u -r1.5 libbb_udhcp.h
 | 
			
		||||
--- a/networking/udhcp/libbb_udhcp.h	18 Dec 2003 22:25:38 -0000	1.5
 | 
			
		||||
+++ b/networking/udhcp/libbb_udhcp.h	5 Mar 2004 13:20:13 -0000
 | 
			
		||||
@@ -3,11 +3,6 @@
 | 
			
		||||
 /* bit of a hack, do this no matter what the order of the includes.
 | 
			
		||||
  * (for busybox) */
 | 
			
		||||
 
 | 
			
		||||
-#ifdef CONFIG_INSTALL_NO_USR
 | 
			
		||||
-#undef DEFUALT_SCRIPT
 | 
			
		||||
-#define DEFAULT_SCRIPT  "/share/udhcpc/default.script"
 | 
			
		||||
-#endif
 | 
			
		||||
-
 | 
			
		||||
 #ifndef _LIBBB_UDHCP_H
 | 
			
		||||
 #define _LIBBB_UDHCP_H
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user