diff options
Diffstat (limited to 'networking/udhcp/dhcpc.c')
-rw-r--r-- | networking/udhcp/dhcpc.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index bd9e8fdc2..c2805a009 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c | |||
@@ -693,16 +693,10 @@ static int raw_bcast_from_client_config_ifindex(struct dhcp_packet *packet, uint | |||
693 | 693 | ||
694 | static int bcast_or_ucast(struct dhcp_packet *packet, uint32_t ciaddr, uint32_t server) | 694 | static int bcast_or_ucast(struct dhcp_packet *packet, uint32_t ciaddr, uint32_t server) |
695 | { | 695 | { |
696 | if (server) { | 696 | if (server) |
697 | /* Without MSG_DONTROUTE, the packet was seen routed over | ||
698 | * _other interface_ if server ID is bogus (example: 1.1.1.1). | ||
699 | */ | ||
700 | return udhcp_send_kernel_packet(packet, | 697 | return udhcp_send_kernel_packet(packet, |
701 | ciaddr, CLIENT_PORT, | 698 | ciaddr, CLIENT_PORT, |
702 | server, SERVER_PORT, | 699 | server, SERVER_PORT); |
703 | /*send_flags: "to hosts only on directly connected networks" */ MSG_DONTROUTE | ||
704 | ); | ||
705 | } | ||
706 | return raw_bcast_from_client_config_ifindex(packet, ciaddr); | 700 | return raw_bcast_from_client_config_ifindex(packet, ciaddr); |
707 | } | 701 | } |
708 | 702 | ||
@@ -1337,7 +1331,10 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) | |||
1337 | } | 1331 | } |
1338 | while (list_x) { | 1332 | while (list_x) { |
1339 | char *optstr = xstrdup(llist_pop(&list_x)); | 1333 | char *optstr = xstrdup(llist_pop(&list_x)); |
1340 | udhcp_str2optset(optstr, &client_config.options, dhcp_optflags, dhcp_option_strings); | 1334 | udhcp_str2optset(optstr, &client_config.options, |
1335 | dhcp_optflags, dhcp_option_strings, | ||
1336 | /*dhcpv6:*/ 0 | ||
1337 | ); | ||
1341 | free(optstr); | 1338 | free(optstr); |
1342 | } | 1339 | } |
1343 | 1340 | ||