
On 03/27/2018 02:24 PM, Patrick Wildt wrote:
The PXE object contains a flag that specifies whether or not a DHCP ACK has been received. This can be used by EFI Applications to find out whether or not it is worth to read the DHCP information from our object.
Signed-off-by: Patrick Wildt patrick@blueri.se
lib/efi_loader/efi_net.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c index 8c5d5b492c..0b9c7b9345 100644 --- a/lib/efi_loader/efi_net.c +++ b/lib/efi_loader/efi_net.c @@ -332,8 +332,10 @@ int efi_net_register(void) netobj->net_mode.max_packet_size = PKTSIZE;
netobj->pxe.mode = &netobj->pxe_mode;
- if (dhcp_ack)
- if (dhcp_ack) { netobj->pxe_mode.dhcp_ack = *dhcp_ack;
netobj->pxe_mode.dhcp_ack_received = 1;
- }
We have received a DHCPOFFER and we now send a DHCPREQUEST to the selected server. This is when efi_net_set_dhcp_ack() is called which sets the variable dhcp_ack.
If the server sustains its offer it responds with a DHCPACK or with a DHCPNACK. Shouldn't we ensure a DHCPACK was received (and not a DHCNACK) before setting dhcp_ack_received?
Best regards
Heinrich