summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/include
diff options
context:
space:
mode:
authorMichael Brown2015-08-29 17:49:54 +0200
committerMichael Brown2015-08-29 17:58:12 +0200
commit2ef04f092c1449ba4cff631d5127455ddecc505f (patch)
tree8f3329c12b184b1a85da24aaa3d1b30e6411fff3 /src/arch/i386/include
parent[efi] Improve efi_wrap debugging (diff)
downloadipxe-2ef04f092c1449ba4cff631d5127455ddecc505f.tar.gz
ipxe-2ef04f092c1449ba4cff631d5127455ddecc505f.tar.xz
ipxe-2ef04f092c1449ba4cff631d5127455ddecc505f.zip
[pxe] Construct all fake DHCP packets before starting PXE NBP
Commit edf74df ("[pxe] Always reconstruct packet for PXENV_GET_CACHED_INFO") fixed the problems caused by returning stale DHCP packets (e.g. from an earlier boot attempt using a different network device), but broke interoperability with NBPs such as WDS which may overwrite our cached (fake) DHCP packets and expect the modified packets to be returned by a subsequent call to PXENV_GET_CACHED_INFO. Fix by constructing the fake DHCP packets immediately before transferring control to a PXE NBP. Calls to PXENV_GET_CACHED_INFO will now never modify the cached packets. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386/include')
-rw-r--r--src/arch/i386/include/pxe.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/arch/i386/include/pxe.h b/src/arch/i386/include/pxe.h
index 66d752683..54649b504 100644
--- a/src/arch/i386/include/pxe.h
+++ b/src/arch/i386/include/pxe.h
@@ -192,6 +192,7 @@ extern struct net_device *pxe_netdev;
extern const char *pxe_cmdline;
extern void pxe_set_netdev ( struct net_device *netdev );
+extern void pxe_fake_cached_info ( void );
extern PXENV_EXIT_t pxenv_tftp_read_file ( struct s_PXENV_TFTP_READ_FILE
*tftp_read_file );
extern PXENV_EXIT_t undi_loader ( struct s_UNDI_LOADER *undi_loader );