diff options
author | Michael Brown <mcb30@ipxe.org> | 2021-07-23 11:32:04 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2021-07-27 13:50:36 +0100 |
commit | e09e1142a3bd8bdb702efc92994c419a53e9933b (patch) | |
tree | 590fa32d0a9512493575ab56f91f68cd954b7a4c /src/arch | |
parent | db6310c3e5948a327a1c6f5706f727fd6cd67c70 (diff) | |
download | ipxe-e09e1142a3bd8bdb702efc92994c419a53e9933b.zip ipxe-e09e1142a3bd8bdb702efc92994c419a53e9933b.tar.gz ipxe-e09e1142a3bd8bdb702efc92994c419a53e9933b.tar.bz2 |
[efi] Record cached ProxyDHCPOFFER and PXEBSACK, if present
Commit cd3de55 ("[efi] Record cached DHCPACK from loaded image's
device handle, if present") added the ability for a chainloaded UEFI
iPXE to reuse an IPv4 address and DHCP options previously obtained by
a built-in PXE stack, without needing to perform a second DHCP
request.
Extend this to also record the cached ProxyDHCPOFFER and PXEBSACK
obtained from the EFI_PXE_BASE_CODE_PROTOCOL instance installed on the
loaded image's device handle, if present.
This allows a chainloaded UEFI iPXE to reuse a boot filename or other
options that were provided via a ProxyDHCP or PXE boot server
mechanism, rather than by standard DHCP.
Tested-by: Andreas Hammarskjöld <junior@2PintSoftware.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/x86/interface/pcbios/bios_cachedhcp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arch/x86/interface/pcbios/bios_cachedhcp.c b/src/arch/x86/interface/pcbios/bios_cachedhcp.c index 3d38699..277c40d 100644 --- a/src/arch/x86/interface/pcbios/bios_cachedhcp.c +++ b/src/arch/x86/interface/pcbios/bios_cachedhcp.c @@ -59,7 +59,8 @@ static void cachedhcp_init ( void ) { } /* Record cached DHCPACK */ - if ( ( rc = cachedhcp_record ( phys_to_user ( cached_dhcpack_phys ), + if ( ( rc = cachedhcp_record ( &cached_dhcpack, + phys_to_user ( cached_dhcpack_phys ), sizeof ( BOOTPLAYER_t ) ) ) != 0 ) { DBGC ( colour, "CACHEDHCP could not record DHCPACK: %s\n", strerror ( rc ) ); |