summaryrefslogtreecommitdiffstats
path: root/src/usr/autoboot.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/autoboot.c')
-rw-r--r--src/usr/autoboot.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c
index 0fa4e8e4f..5cfde823d 100644
--- a/src/usr/autoboot.c
+++ b/src/usr/autoboot.c
@@ -19,6 +19,7 @@
#include <string.h>
#include <vsprintf.h>
#include <gpxe/netdevice.h>
+#include <usr/ifmgmt.h>
#include <gpxe/autoboot.h>
/** @file
@@ -27,26 +28,21 @@
*
*/
-#include <gpxe/netdevice.h>
void test_dhcp ( struct net_device *netdev );
void autoboot ( void ) {
struct net_device *netdev;
int rc;
- netdev = next_netdev ();
- if ( ! netdev ) {
- printf ( "No network device found\n" );
- return;
- }
+ for_each_netdev ( netdev ) {
- if ( ( rc = netdev_open ( netdev ) ) != 0 ) {
- printf ( "Could not open %s: %s\n", netdev->name,
- strerror ( rc ) );
- return;
- }
+ if ( ( rc = ifopen ( netdev ) ) != 0 )
+ continue;
- test_dhcp ( netdev );
+ test_dhcp ( netdev );
+
+ ifclose ( netdev );
+ }
- netdev_close ( netdev );
+ printf ( "No more network devices\n" );
}