summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2008-08-13 22:51:53 +0200
committerMichael Brown2008-08-13 22:51:53 +0200
commita1d0f6ed2e8ad7c04615db405cffb3eec4ae139a (patch)
treed69f6323fbbee7a8884852343af5b6459e66ece4
parent[retry] Added configurable timeouts to retry timer (diff)
downloadipxe-a1d0f6ed2e8ad7c04615db405cffb3eec4ae139a.tar.gz
ipxe-a1d0f6ed2e8ad7c04615db405cffb3eec4ae139a.tar.xz
ipxe-a1d0f6ed2e8ad7c04615db405cffb3eec4ae139a.zip
[dhcp] Do not restrict minimum retry time for ProxyDHCPREQUEST
The ProxyDHCPREQUEST is a unicast packet, so the first request will almost always be lost due to not having the IP address in the ARP cache. If the minimum retry time is set to one second (as per commit ff2b6a5), then ProxyDHCP will time out and give up before managing to successfully transmit a request. The DHCP timers need to be reworked anyway, so this mild hack is acceptable for now.
-rw-r--r--src/net/udp/dhcp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c
index 149bdfb5..5fcd56ea 100644
--- a/src/net/udp/dhcp.c
+++ b/src/net/udp/dhcp.c
@@ -818,6 +818,7 @@ static void dhcp_rx_dhcpack ( struct dhcp_session *dhcp,
/* If we have a ProxyDHCPOFFER, transition to PROXYDHCPREQUEST */
if ( dhcp->proxydhcpoffer ) {
+ dhcp->timer.min_timeout = 0;
dhcp_set_state ( dhcp, DHCP_STATE_PROXYREQUEST );
return;
}