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