Apply global DHCP options when register_dhcp_options() is called. Do
authorMichael Brown <mcb30@etherboot.org>
Fri, 6 Jul 2007 16:07:50 +0000 (17:07 +0100)
committerMichael Brown <mcb30@etherboot.org>
Fri, 6 Jul 2007 16:07:50 +0000 (17:07 +0100)
not apply DHCP options in dhcp_configure_netdev().

src/include/gpxe/dhcp.h
src/net/dhcpopts.c
src/net/udp/dhcp.c

index caac914..7e5eb3c 100644 (file)
@@ -504,6 +504,7 @@ extern void find_global_dhcp_ipv4_option ( unsigned int tag,
 extern void delete_dhcp_option ( struct dhcp_option_block *options,
                                 unsigned int tag );
 extern int apply_dhcp_options ( struct dhcp_option_block *options );
+extern int apply_global_dhcp_options ( void );
 
 extern struct dhcp_option_block dhcp_request_options;
 extern int create_dhcp_packet ( struct net_device *netdev, uint8_t msgtype,
index 6038709..c713909 100644 (file)
@@ -289,6 +289,9 @@ void register_dhcp_options ( struct dhcp_option_block *options ) {
        }
        dhcpopt_get ( options );
        list_add_tail ( &options->list, &existing->list );
+
+       /* Apply all registered DHCP options */
+       apply_global_dhcp_options();
 }
 
 /**
@@ -609,3 +612,12 @@ int apply_dhcp_options ( struct dhcp_option_block *options ) {
 
        return 0;
 }
+
+/**
+ * Apply global DHCP options
+ *
+ * @ret rc             Return status code
+ */
+int apply_global_dhcp_options ( void ) {
+       return apply_dhcp_options ( NULL );
+}
index a8cb937..81454b0 100644 (file)
@@ -855,12 +855,5 @@ int dhcp_configure_netdev ( struct net_device *netdev,
                return rc;
        }
 
-       /* Apply other DHCP options */
-       if ( ( rc = apply_dhcp_options ( options ) ) != 0 ) {
-               DBG ( "Could not apply %s DHCP result options: %s\n",
-                     netdev->name, strerror ( rc ) );
-               return rc;
-       }
-
        return 0;
 }