[dhcp] Allow multiple interfaces in dhcp command
authorLars Kellogg-Stedman <lars@oddbit.com>
Sat, 31 Jul 2010 08:20:41 +0000 (09:20 +0100)
committerStefan Hajnoczi <stefanha@gmail.com>
Sun, 1 Aug 2010 20:39:08 +0000 (21:39 +0100)
commitfa91c2c3269554df855107a24afec9a1149fee8f
tree5d8dea4960db0b25d4e6fc38f6c847c2cb585fed
parentb3858e358b7a6bc921eefa9158cdd19ee91e1a95
[dhcp] Allow multiple interfaces in dhcp command

The "dhcp" command now accepts a list of interfaces and to try until one
succeeds:

 gPXE> dhcp net0 net1 net2

If an interface does not exist a message is printed and it is skipped.

If given the single parameter "any" as an interface name, all interfaces
are tried in a manner similar to autoboot:

 gPXE> dhcp any
 DHCP (net0 xx:xx:xx:xx:xx:xx)........ Connection timed out (...)
 Could not configure net0: Connection timed out (...)
 DHCP (net1 xx:xx:xx:xx:xx:xx).... ok
 gPXE>

Note that interfaces which fail to DHCP are closed.  This is usually
desirable since an open interface consumes memory.  On machines with
several interfaces it is possible to exhaust the heap if all interfaces
are open simultaneously.  This behavior differs from the previous "dhcp"
command implementation but should not be detectable to user scripts
since they abort when the dhcp command exits with an error.

Acked-by: Marty Connor <mdc@etherboot.org>
Signed-off-by: Lars Kellogg-Stedman <lars@oddbit.com>
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com>
src/hci/commands/dhcp_cmd.c