All DHCP clients like to stamp their view on configuration files. After all, that is part of their job :) However, many people also have their own settings in the same configuration file. Most people don’t notice dhcpcd stamping on these files, but when they do they normally just turn that feature off.
The main culprit here is ntp.conf, as it can have quite a complex setup and dhcpcd has always imposed it’s own world view on it.
So I’ve finally found out why the dhcpcd-4.0.0-rc series sometimes wedges itself - select and poll do not always timeout on time. If they return 0, then can return slightly early and the real time left is very small. This is likely a kernel timer resolution issue, something that won’t be fixed easily, quickly or ever. Now, for fully passing IPv4LL compliance AND being DHCP re-transmission compliant AND timing out to the userland correctly we introduced expiry timers in dhcpcd-4.
Hmmmm, all my blogs appear to be about dhcpcd these days. No bad thing though eh? Anyway, if you’ve been using dhcpcd-4.0.0-rc1 or rc2, you should update to rc3 as it fixes an issue with infinite leases and a potential issue with lease time overflowing time_t (as uint32_t is greater than time_t on 32-bit platforms). To get around this issue, we simply treat any unusable leases as infinite. This shouldn’t be a problem as we base all our times around a monotonic clock instead of the actual time which means that when dhcpcd restarts you can handle leases of up to 67 years ahead.
OK, so one of the most popular questions asked on the Gentoo forums is “How can I stop DHCP from stalling startup?“Well, as Gentoo is very minimal, it does not come with ifplugd or netplug by default- simply installing either solves this for wired. wpa_supplicant comes with an action script for wpa_cli to solve this for wireless also.NetBSD ships with ifwatchd for wired and wireless, but it’s not enabled by default.
OK, so I spent the majority of the weekend looking after my lovely daughter, whilst my equally lovely wife was painting the lounge. This meant time on my laptop instead of playing WoW …. so I got some good coding done also.dhcpcd is now in touching distance of passing Apples Bonjour conformance test :)….. and it also works with NetworkManager svn! OK, !NetworkManager does need this patch but it’s a starting point.