Rework in which state to add and not add the server-ip and
authorflorian <florian@openbsd.org>
Thu, 9 Dec 2021 16:20:12 +0000 (16:20 +0000)
committerflorian <florian@openbsd.org>
Thu, 9 Dec 2021 16:20:12 +0000 (16:20 +0000)
commit82a5f3d74c6ab52e9b2d46960728126c6ed84024
tree95a6c0167e5c34ae58d125878e545d5d441d93f9
parent56dfe78c03a0e2bfe0735d5b3d9641df571c7f33
Rework in which state to add and not add the server-ip and
requested-ip option as well as setting ciaddr.

This started with joel@ pointing out that their CPE is ignoring
RENEWING and REBINDING requests when ciaddr was not set.

RFC 2131 4.3.6, Table 4 has a good overview, we got a bunch of it
wrong.

Previously the logic for this was all over the place which made it
difficult to reason about, it is now contained in the engine process
in request_dhcp_request() and request_dhcp_discover().

Problem pointed out by, lots of testing and review as well as OK joel@
Additional testing and 50% review benno@
sbin/dhcpleased/dhcpleased.h
sbin/dhcpleased/engine.c
sbin/dhcpleased/frontend.c