A DHCP client for linux 2.6, using modern kernel features, ©2006, 2007 Stefan Rompf.
Using a notebook, I'm often traveling between different networks. After replugging, I always needed to issue a ifdown/ifup sequence because the DHCP client did not realize the temporary disconnection. This is an unneeded limitation because since 2.6, the kernel notifies userspace of these disconnection/reconnection events. Actually it was me who implemented this feature.
Beginning with 2.6.17, the linux kernel will allow userspace to influence this signalling, so that for example a wpa supplicant can tell the dhcpclient that an association has finished and the client should try to get an IP address.
Of course, you need software that support this feature. Unfortunately, most existing DHCP clients implemented their statemachine using siglongjmp() or one huge function, so there was no easy way extending them. So I wrote a new one.
Currently, this is alpha software. It shouldn't be used in production environment, but I'm looking forward for people who like to test it in different environments and for (reasonable ;-) feature suggestions!
The webpage is at http://www.flamewarmaster.de/software/dhcpclient/
There is a mailing list available on http://www.flamewarmaster.de/mailman/listinfo/dhcpclient/