aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorJoshua Oreman <oremanj@rwcr.net>2009-11-03 13:45:58 -0500
committerMarty Connor <mdc@etherboot.org>2010-01-21 18:36:26 -0500
commit5efc2fcb602864e82de2cd7414e3828f589034e5 (patch)
tree45e1981406297577a3a27f4bed99cf347be37903 /contrib
parent466d8fc234cf32cb63d9d773e2f92f51860165f9 (diff)
downloadipxe-5efc2fcb602864e82de2cd7414e3828f589034e5.tar.gz
[dhcp] Keep multiple DHCP offers received, and use them intelligently
Instead of keeping only the best IP and PXE offers, store all of them, and pick the best to use just before a request is sent. This allows priority differentiation to work even when lower-priority offers provide PXE options, and improves robustness at sites with broken PXE servers intermingled with working ones: when a ProxyDHCP request times out, instead of giving up, we try the next PXE offer we've received. It also allows us to avoid breaking up combined IP+PXE offers, which can be important with some firewall configurations. This behavior matches that of most vendor PXE ROMs. Store a reference to the DHCPOFFER packet in the offer structure, so that when registering settings after a successful ACK we can register the proxy PXE settings we originally received; this removes the need for a nonstandard duplicate REQUEST/ACK to port 67 of proxy servers like dnsmasq that provide PXE options in the OFFER. Total cost: 450 bytes uncompressed. Signed-off-by: Marty Connor <mdc@etherboot.org>
Diffstat (limited to 'contrib')
0 files changed, 0 insertions, 0 deletions