udhcpc: remove code which requires server ID to be on local network

This reverts "udhcpc: paranoia when using kernel UDP mode
for sending renew: server ID may be bogus".

Users complain that they do have servers behind routers
(with DHCP relays).

function                                             old     new   delta
send_packet                                          168     166      -2
bcast_or_ucast                                        25      23      -2
udhcp_send_kernel_packet                             301     295      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-10)             Total: -10 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2018-06-21 17:36:22 +02:00
parent 6fb8bd795c
commit 148788eb0e
5 changed files with 8 additions and 21 deletions

View File

@ -693,16 +693,10 @@ static int raw_bcast_from_client_config_ifindex(struct dhcp_packet *packet, uint
static int bcast_or_ucast(struct dhcp_packet *packet, uint32_t ciaddr, uint32_t server)
{
if (server) {
/* Without MSG_DONTROUTE, the packet was seen routed over
* _other interface_ if server ID is bogus (example: 1.1.1.1).
*/
if (server)
return udhcp_send_kernel_packet(packet,
ciaddr, CLIENT_PORT,
server, SERVER_PORT,
/*send_flags: "to hosts only on directly connected networks" */ MSG_DONTROUTE
);
}
server, SERVER_PORT);
return raw_bcast_from_client_config_ifindex(packet, ciaddr);
}