Browse Source

[dhcp] Await link-up before starting DHCP

Modified-by: Michael Brown <mcb30@etherboot.org>
Signed-off-by: Michael Brown <mcb30@etherboot.org>
tags/v0.9.8
Joshua Oreman 15 years ago
parent
commit
6254998327
2 changed files with 6 additions and 7 deletions
  1. 0
    7
      src/usr/autoboot.c
  2. 6
    0
      src/usr/dhcpmgmt.c

+ 0
- 7
src/usr/autoboot.c View File

39
  *
39
  *
40
  */
40
  */
41
 
41
 
42
-/** Time to wait for link-up */
43
-#define LINK_WAIT_MS 15000
44
-
45
 /** Shutdown flags for exit */
42
 /** Shutdown flags for exit */
46
 int shutdown_exit_flags = 0;
43
 int shutdown_exit_flags = 0;
47
 
44
 
153
 		return rc;
150
 		return rc;
154
 	ifstat ( netdev );
151
 	ifstat ( netdev );
155
 
152
 
156
-	/* Wait for link-up */
157
-	if ( ( rc = iflinkwait ( netdev, LINK_WAIT_MS ) ) != 0 )
158
-		return rc;
159
-
160
 	/* Configure device via DHCP */
153
 	/* Configure device via DHCP */
161
 	if ( ( rc = dhcp ( netdev ) ) != 0 )
154
 	if ( ( rc = dhcp ( netdev ) ) != 0 )
162
 		return rc;
155
 		return rc;

+ 6
- 0
src/usr/dhcpmgmt.c View File

28
 #include <usr/ifmgmt.h>
28
 #include <usr/ifmgmt.h>
29
 #include <usr/dhcpmgmt.h>
29
 #include <usr/dhcpmgmt.h>
30
 
30
 
31
+#define LINK_WAIT_MS	15000
32
+
31
 /** @file
33
 /** @file
32
  *
34
  *
33
  * DHCP management
35
  * DHCP management
41
 	if ( ( rc = ifopen ( netdev ) ) != 0 )
43
 	if ( ( rc = ifopen ( netdev ) ) != 0 )
42
 		return rc;
44
 		return rc;
43
 
45
 
46
+	/* Wait for link-up */
47
+	if ( ( rc = iflinkwait ( netdev, LINK_WAIT_MS ) ) != 0 )
48
+		return rc;
49
+
44
 	/* Perform DHCP */
50
 	/* Perform DHCP */
45
 	printf ( "DHCP (%s %s)", netdev->name, netdev_hwaddr ( netdev ) );
51
 	printf ( "DHCP (%s %s)", netdev->name, netdev_hwaddr ( netdev ) );
46
 	if ( ( rc = start_dhcp ( &monojob, netdev ) ) == 0 )
52
 	if ( ( rc = start_dhcp ( &monojob, netdev ) ) == 0 )

Loading…
Cancel
Save