non-busybox dhcp clients (was: PATCH: ifupdown.c, udhcpc, and standalone shell)

Eric Spakman E.Spakman at inter.nl.net
Mon Oct 2 20:29:17 UTC 2006


Hi Gabriel,

>> >Sound like a very good idea. Use udhcp when compiled in busybox and 
>> >use a list of clients when not. 
>> >But please don't mark option b) as obsolete. Why not keep the option 
>> >to choose a different client for people who don't like udhcp (like me).
>
>Eric,
>
>You should have been cc-ed on the latest patch I sent to Denis (the
>one which implements 'manual'). Did you get that ?
>
I'm not sure, I only have internet access with my PDA at the moment 
and it's really a struggle to even read mail on it ;-)

>Right now, ifupdown starts by attempting to execute udhcpc. If that
>fails, it goes down the list, generating a warning for each
>unsuccessful execute() attempt.
>
>Attempts to execute other clients beyond udpcpc are marked deprecated
>(but, as Denis indicated, it may take a *long* time before the calls
>are actually removed). If the patch goes in, the recommended way to
>start non-udhcpc dhcp clients will be via 'manual'. So, to use dhclient
>as an example:
>
>	iface eth0 inet dhcp
>
>will become
>
>	iface eth0 inet manual
>	  up dhclient -pf /var/run/dhclient.$IFACE.pid $IFACE
>	  down kill -9 `cat /var/run/dhclient.$IFACE.pid` 2>/dev/null
>
>although the old form will keep working.
>
>Now, my opinion that busybox's ifupdown should only care about udhcpc
>is based on the whole bload-reduction principle on which busybox
>itself is based. For all I know, udhcpc sucks really bad when compared
>to, e.g. your favorite client. BTW, which client is your favorite, and
>what don't you like about udhcpc ? :) Whatever it is, maybe it can be
>fixed... :)
>
The reason I like to keep all clients working is because of my 
project (leaf.sourceforge.net, "Bering-uClibc") and other embedded 
router distros.

It's all about choices, udhcp works but not in every occasion. Other 
clients, like dhcpcd (my 'choice'), dhcpc and pump are more feature 
rich and work much better in a router setup (most router projects use 
busybox, so it's a big userbase).
Not that udhcp is bad, but it's written with size in mind. Which is ok,
 but not always the best choice.

In Bering-uclibc you can use a dhcp client package of choice and 
until now that just worked without errors.

It would be a pity if busybox was crippled to only support udhcp in 
ifupdown, it's not needed and would limit its use.

My preference would be:
a) implement the 'manual' method
b) only use udhcp when compiled into busybox
c) revert the first patch and use the clients which are available on 
the system without generating an error/warning. Although 'ugly' with 
paths if no other solution can be found.

The c) part is maybe not the nicest solution, but busybox is meant to 
be used in projects and at least I am running a project which always 
used that functionality ;-)

>Cheers,
>Gabriel

Cheers, 
Eric



More information about the busybox mailing list