Only generate a new xid on state change.
authorflorian <florian@openbsd.org>
Mon, 13 Dec 2021 16:12:10 +0000 (16:12 +0000)
committerflorian <florian@openbsd.org>
Mon, 13 Dec 2021 16:12:10 +0000 (16:12 +0000)
commit9e257558e2b1e0746659862ae054f6c62c79f1f5
tree59957ede32b21b450172184835d252a0e8704d2b
parent87c93f01794232be35da5db855061861fa67bb2f
Only generate a new xid on state change.

When we first request a lease (INIT or REBOOTING state) we run with
very short timeouts. If the dhcp server is slow to respond we already
have a new xid and ignore the server's response. This goes on until we
increase the timeout high enough. If we just stick to an xid this will
not happen and we accept "late" responses.

RFC 2131 has:
Selecting a new 'xid' for each retransmission is an implementation
decision.  A client may choose to reuse the same 'xid' or select a new
'xid' for each retransmitted message.

Problem seen by phessler on german train wifi.
OK phessler
sbin/dhcpleased/engine.c