So I’ve been maintaining dhcpcd for a long time now. I feel that it’s in very good shape and very resiliant to network changes and hickups. I’ve also finished FreeBSD, OpenBSD and DragonflyBSD support a while ago and it prompted a few OpenBSD people to take a look at it. One of them was Tobias Stoeckmann and he’s been submitting a lot of patches to fix simple things that I should have checked, but sadly didn’t. Luckily only one of them looks critical, and a dhcpcd release has already been made to hande it. The code in question has been in since dhcpcd-4 and no-ones spotted it until now which is kind of suprising really.
During this time I’ve also been working on removing DBus support from libdhcpcd so it talks directly to dhcpcd. I’ve also started a dhcpcd-qt port and written a dhcpcd-online tool, both of which use libdhcpcd. Whilst doing this I discovered that dhcpcd’s control socket was very very flaky so that’s now been vastly improved as well. There is an intermittent SIGPIPE error which I still don’t know why it occurs, but it’s gracefully handled and dhcpcd / libdhcpcd can easily restart things.
The lesson learned from both of the above points is that no matter how well you write your code, on a large project like this there is always an error somewhere and it someones takes someone else to find it!