59c88cb
diff -up dhcp-4.3.3/client/dhclient.c.preinit6s dhcp-4.3.3/client/dhclient.c
59c88cb
--- dhcp-4.3.3/client/dhclient.c.preinit6s	2015-09-22 16:42:27.211145636 +0200
59c88cb
+++ dhcp-4.3.3/client/dhclient.c	2015-09-22 16:42:54.826112762 +0200
59c88cb
@@ -691,6 +691,12 @@ main(int argc, char **argv) {
59c88cb
 
59c88cb
 	inaddr_any.s_addr = INADDR_ANY;
59c88cb
 
59c88cb
+	/* Discover all the network interfaces. */
59c88cb
+	discover_interfaces(DISCOVER_UNCONFIGURED);
59c88cb
+
59c88cb
+	/* Parse the dhclient.conf file. */
59c88cb
+	read_client_conf();
59c88cb
+
59c88cb
 	/* Stateless special case. */
59c88cb
 	if (stateless) {
59c88cb
 		if (release_mode || (wanted_ia_na > 0) ||
59c88cb
@@ -702,12 +708,6 @@ main(int argc, char **argv) {
59c88cb
 		return 0;
59c88cb
 	}
59c88cb
 
59c88cb
-	/* Discover all the network interfaces. */
59c88cb
-	discover_interfaces(DISCOVER_UNCONFIGURED);
59c88cb
-
59c88cb
-	/* Parse the dhclient.conf file. */
59c88cb
-	read_client_conf();
59c88cb
-
59c88cb
 	/* Parse any extra command line configuration arguments: */
59c88cb
 	if ((dhcp_client_identifier_arg != NULL) && (*dhcp_client_identifier_arg != '\0')) {
59c88cb
 		arg_conf_len = asprintf(&arg_conf, "send dhcp-client-identifier \"%s\";", dhcp_client_identifier_arg);
59c88cb
@@ -1169,15 +1169,23 @@ void run_stateless(int exit_mode)
59c88cb
 	struct client_state *client;
59c88cb
 	omapi_object_t *listener;
59c88cb
 	isc_result_t result;
59c88cb
-
59c88cb
-	/* Discover the network interface. */
59c88cb
-	discover_interfaces(DISCOVER_REQUESTED);
59c88cb
+	struct interface_info *ip;
59c88cb
 
59c88cb
 	if (!interfaces)
59c88cb
 		usage();
59c88cb
 
59c88cb
-	/* Parse the dhclient.conf file. */
59c88cb
-	read_client_conf();
59c88cb
+	for (ip = interfaces; ip; ip = ip->next) {
59c88cb
+		if ((interfaces_requested > 0) &&
59c88cb
+		    ((ip->flags & (INTERFACE_REQUESTED |
59c88cb
+				   INTERFACE_AUTOMATIC)) !=
59c88cb
+		     INTERFACE_REQUESTED))
59c88cb
+			continue;
59c88cb
+		script_init(ip->client, "PREINIT6S", NULL);
59c88cb
+		script_go(ip->client);
59c88cb
+	}
59c88cb
+
59c88cb
+	/* Discover the network interface. */
59c88cb
+	discover_interfaces(DISCOVER_REQUESTED);
59c88cb
 
59c88cb
 	/* Parse the lease database. */
59c88cb
 	read_client_leases();