[DHCP] Fix up fake-packet creation as used by PXENV_GET_CACHED_INFO

Add dedicated functions create_dhcpdiscover(), create_dhcpack() and
create_proxydhcpack() for use by external code such as the PXE preboot
code.

Register ProxyDHCP options under the global scope "proxydhcp".

Unregister previously-acquired DHCP and ProxyDHCP settings when DHCP
succeeds.
This commit is contained in:
Michael Brown
2008-03-23 21:58:05 +00:00
parent 1741e3e761
commit ee4206a8a7
5 changed files with 148 additions and 79 deletions

View File

@@ -390,7 +390,6 @@ static struct net_device * guess_boot_netdev ( void ) {
* @ret rc Return status code
*/
static int nbi_prepare_dhcp ( struct image *image ) {
struct dhcp_packet dhcppkt;
struct net_device *boot_netdev;
int rc;
@@ -401,9 +400,8 @@ static int nbi_prepare_dhcp ( struct image *image ) {
return -ENODEV;
}
if ( ( rc = create_dhcp_response ( &dhcppkt, boot_netdev, DHCPACK,
NULL, basemem_packet,
sizeof ( basemem_packet ) ) ) != 0){
if ( ( rc = create_dhcpack ( boot_netdev, basemem_packet,
sizeof ( basemem_packet ) ) ) != 0 ) {
DBGC ( image, "NBI %p failed to build DHCP packet\n", image );
return rc;
}