d8dd829d9d
Patches applied upstream and dropped: 280-fix_find_regression.patch 300-ip-addr-improvements.patch Fixed upstream: 290-ash-fix-a-regression-in-handling-local-variables.patch (see thread: http://lists.busybox.net/pipermail/busybox/2015-April/082783.html) Signed-off-by: Magnus Kroken <mkroken@gmail.com> SVN-Revision: 47288
52 lines
1.8 KiB
Diff
52 lines
1.8 KiB
Diff
--- a/networking/udhcp/dhcpc.c
|
|
+++ b/networking/udhcp/dhcpc.c
|
|
@@ -673,10 +673,10 @@ static void add_client_options(struct dh
|
|
* client reverts to using the IP broadcast address.
|
|
*/
|
|
|
|
-static int raw_bcast_from_client_config_ifindex(struct dhcp_packet *packet)
|
|
+static int raw_bcast_from_client_config_ifindex(struct dhcp_packet *packet, uint32_t src_nip)
|
|
{
|
|
return udhcp_send_raw_packet(packet,
|
|
- /*src*/ INADDR_ANY, CLIENT_PORT,
|
|
+ /*src*/ src_nip, CLIENT_PORT,
|
|
/*dst*/ INADDR_BROADCAST, SERVER_PORT, MAC_BCAST_ADDR,
|
|
client_config.ifindex);
|
|
}
|
|
@@ -687,7 +687,7 @@ static int bcast_or_ucast(struct dhcp_pa
|
|
return udhcp_send_kernel_packet(packet,
|
|
ciaddr, CLIENT_PORT,
|
|
server, SERVER_PORT);
|
|
- return raw_bcast_from_client_config_ifindex(packet);
|
|
+ return raw_bcast_from_client_config_ifindex(packet, ciaddr);
|
|
}
|
|
|
|
/* Broadcast a DHCP discover packet to the network, with an optionally requested IP */
|
|
@@ -715,7 +715,7 @@ static NOINLINE int send_discover(uint32
|
|
|
|
if (msgs++ < 3)
|
|
bb_info_msg("Sending discover...");
|
|
- return raw_bcast_from_client_config_ifindex(&packet);
|
|
+ return raw_bcast_from_client_config_ifindex(&packet, INADDR_ANY);
|
|
}
|
|
|
|
/* Broadcast a DHCP request message */
|
|
@@ -759,7 +759,7 @@ static NOINLINE int send_select(uint32_t
|
|
|
|
addr.s_addr = requested;
|
|
bb_info_msg("Sending select for %s...", inet_ntoa(addr));
|
|
- return raw_bcast_from_client_config_ifindex(&packet);
|
|
+ return raw_bcast_from_client_config_ifindex(&packet, INADDR_ANY);
|
|
}
|
|
|
|
/* Unicast or broadcast a DHCP renew message */
|
|
@@ -827,7 +827,7 @@ static NOINLINE int send_decline(/*uint3
|
|
udhcp_add_simple_option(&packet, DHCP_SERVER_ID, server);
|
|
|
|
bb_info_msg("Sending decline...");
|
|
- return raw_bcast_from_client_config_ifindex(&packet);
|
|
+ return raw_bcast_from_client_config_ifindex(&packet, INADDR_ANY);
|
|
}
|
|
#endif
|
|
|