|
|
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();
|