Make unveiling the lease directory a warning instead of a fatal error
authorflorian <florian@openbsd.org>
Tue, 2 Mar 2021 12:03:50 +0000 (12:03 +0000)
committerflorian <florian@openbsd.org>
Tue, 2 Mar 2021 12:03:50 +0000 (12:03 +0000)
commitae968ffd159a87bf1d6a452172c6c5cf1b154f48
treeb1cccbccd53ee98ea63b8b3e34db48fc8a1db04d
parentf520819102d6e13a97eaac586d57c2a35dd23ff6
Make unveiling the lease directory a warning instead of a fatal error
when the lease directory does not exist.
This means that dhcpleased(8) will no longer request a previously
configured IP address from the dhcp server and will fall back to
DHCPDISCOVER which requests any IP address from the dhcp server.

This likely makes diskless(8) work with dhcpleased(8).

A normal diskless(8) setup has only / mounted via nfs when
dhcpleased(8) starts. /var exists but nothing is mounted there yet,
meaning /var/db/dhcpleased does not exist so lease files are disabled.
dhcpleased(8) sends a DHCPDISCOVER to request any IP address but since
the dhcp server has (very likely) a 'fixed-address' configured we get
the same IP back that is already configured.

If /var/db/dhcpleased/ exists on / (and /var is *NOT* mounted later)
in a diskless(8) setup, care must be taken that the root file system is
not shared between machines.

If /var/db/dhcpleased/ exists on / and /var on NFS is mounted over
this later bad things probably happen. This is a configuration error
and must befixed.

discussed with deraadt@

Actuall tests on existing diskless(8) setups would be appreciated.
sbin/dhcpleased/dhcpleased.c