Fix DHCP relay, broken by ff325644c7

Thanks to John Fitzgibbon for initial patch.
This commit is contained in:
Simon Kelley
2017-06-25 21:19:30 +01:00
parent 50ca85504c
commit 1649f709e7
2 changed files with 18 additions and 2 deletions

View File

@@ -1,3 +1,19 @@
version 2.78
Fix logic of appending ".<layer>" to PXE basename. Thanks
to Chris Novakovic for the patch.
Revert ping-check of address in DHCPDISCOVER if there
already exists a lease for the address. Under some
circumstances, and netbooted windows installation can reply
to pings before if has a DHCP lease and block allocation
of the address it already used during netboot. Thanks to
Jan Psota for spotting this.
Fix DHCP relaying, broken in 2.76 and 2.77 by commit
ff325644c7afae2588583f935f4ea9b9694eb52e. Thanks to
John Fitzgibbon for the diagnosis and patch.
version 2.77
Generate an error when configured with a CNAME loop,
rather than a crash. Thanks to George Metz for

View File

@@ -273,8 +273,8 @@ void dhcp_packet(time_t now, int pxe_fd)
if ((relay = relay_reply4((struct dhcp_packet *)daemon->dhcp_packet.iov_base, ifr.ifr_name)))
{
/* Reply from server, using us as relay. */
iface_index = relay->iface_index;
if (!indextoname(daemon->dhcpfd, iface_index, ifr.ifr_name))
rcvd_iface_index = relay->iface_index;
if (!indextoname(daemon->dhcpfd, rcvd_iface_index, ifr.ifr_name))
return;
is_relay_reply = 1;
iov.iov_len = sz;