It’s been a while in the making, but dhcpcd-7.0.0-beta1 is finally here! I have been using this a lot on all supported platforms bar Solaris and it’s been very trouble free, so hopefully not many changes (if any? famous last words!) before a RC and final release.
Summary of changes since dhcpcd-6.11.5:
- source file locations reworked: dhcpcd source is in src dhcpcd hooks are in hooks compat is in compat
- README split into README.md and BUILDING.md
- internal routing is now protocol agnostic
- avoid using
__packed
and use compile time asserts instead - addresses some alignment issues
- disable some ARP code on kernels which support RFC5227
- BSD IPv6 kernel settings are now updated to reflect dhcpcd config
- custom logger has been removed, syslog handles everything
as such, the
--logfile
option has been removed as well. If you need better/earlier logging, get a better syslogger! - distinfo and signed distinfo files are now available alongside release taraballs from this point onwards
- default DBDIR has changed from
/var/db
to/var/db/dhcpcd
/etc/dhcpcd.duid
moves toDBDIR/duid
/etc/dhcpcd.secret
moves toDBDIR/secret
- lease file names have dhcpcd removed from them as they are now inside a directory of the same name
- fixed issues with reject routes not working on some platforms
- improved nl80211 support on Linux for working out the SSID
- no longer request NTP by default in dhcpcd.conf
- fix detecting IPv6 DAD on OpenBSD
- remove custom Solaris DLPI filtering in favour of BPF (note there seems to be a kernel issue where the DHCP fd receives ARP’s as well, the only side effect is a noisy syslog)
- BPF filtering vastly improved so dhcpcd only wake up on ARP or DHCP packets destined for it
- support for MUD URL (draft-ietf-opsawg-mud-05)
- if the kernel isn’t doing DAD, don’t insist on waiting for it to actually do it
- fix a potential crash where the DHCP or ARP states could be freed before the packet processing loop naturally breaks
- removed gateway and nogateway options (these can be controlled by the nooption directive which works for more than just gateways)
- removed ipv6ra_own and ipv6ra_own_default options (these can be controled by the ipv6rs/noipv6rs directive)
- fix a memory leak on systems where posix_spawnattr_init allocates memory by calling posix_spawnattr_destroy afterwards
- fix a crash receiving SIGUSR1
I’ve not done everything I’ve wanted to, but I feel that many issues have now been addressed and on the whole dhcpcd is in a very good state right now.
Let me know of any issues you find!