Module Name:    src
Committed By:   christos
Date:           Tue Feb  4 22:34:39 UTC 2014

Modified Files:
        src/external/bsd/dhcp/dist/client: dhclient.c

Log Message:
Wait for all the interfaces specified on the command line to be configured
before daemonizing, not just the first one. Perhaps we should introduce a
separate flag for this behavior?


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/external/bsd/dhcp/dist/client/dhclient.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/dhcp/dist/client/dhclient.c
diff -u src/external/bsd/dhcp/dist/client/dhclient.c:1.7 src/external/bsd/dhcp/dist/client/dhclient.c:1.8
--- src/external/bsd/dhcp/dist/client/dhclient.c:1.7	Thu Jun 20 11:14:03 2013
+++ src/external/bsd/dhcp/dist/client/dhclient.c	Tue Feb  4 17:34:39 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: dhclient.c,v 1.7 2013/06/20 15:14:03 christos Exp $	*/
+/*	$NetBSD: dhclient.c,v 1.8 2014/02/04 22:34:39 christos Exp $	*/
 
 /* dhclient.c
 
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: dhclient.c,v 1.7 2013/06/20 15:14:03 christos Exp $");
+__RCSID("$NetBSD: dhclient.c,v 1.8 2014/02/04 22:34:39 christos Exp $");
 
 #include "dhcpd.h"
 #include <syslog.h>
@@ -60,6 +60,7 @@ isc_boolean_t hw_mismatch_drop = ISC_TRU
 int dhcp_max_agent_option_packet_length = 0;
 
 int interfaces_requested = 0;
+int interfaces_left = 0;
 
 struct iaddr iaddr_broadcast = { 4, { 255, 255, 255, 255 } };
 struct iaddr iaddr_any = { 4, { 0, 0, 0, 0 } };
@@ -367,8 +368,10 @@ main(int argc, char **argv) {
 	 */
 	go_daemon();
 	setup();
-	if (interfaces_requested > 0)
+	if (interfaces_requested > 0) {
 		add_interfaces(ifaces, interfaces_requested);
+		interfaces_left = interfaces_requested;
+	}
 	free(ifaces);
 	if (wanted_ia_na < 0) {
 		wanted_ia_na = 1;
@@ -894,7 +897,7 @@ int find_subnet (struct subnet **sp,
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: dhclient.c,v 1.7 2013/06/20 15:14:03 christos Exp $");
+__RCSID("$NetBSD: dhclient.c,v 1.8 2014/02/04 22:34:39 christos Exp $");
 
 void state_reboot (cpp)
 	void *cpp;
@@ -3486,6 +3489,9 @@ void finish_daemon (void)
 	if (no_daemon)
 		return;
 
+	if (interfaces_left && --interfaces_left)
+		return;
+
 	/* Only do it once. */
 	if (state)
 		return;

Reply via email to