[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

@@ -445,14 +445,12 @@ struct dhcphdr {
/** Maximum time that we will wait for ProxyDHCP offers */
#define PROXYDHCP_WAIT_TIME ( TICKS_PER_SEC * 1 )
extern int create_dhcp_request ( struct dhcp_packet *dhcppkt,
struct net_device *netdev, int msgtype,
struct settings *offer_settings,
extern int create_dhcpdiscover ( struct net_device *netdev,
void *data, size_t max_len );
extern int create_dhcpack ( struct net_device *netdev,
void *data, size_t max_len );
extern int create_proxydhcpack ( struct net_device *netdev,
void *data, size_t max_len );
extern int create_dhcp_response ( struct dhcp_packet *dhcppkt,
struct net_device *netdev, int msgtype,
struct settings *settings,
void *data, size_t max_len );
extern int start_dhcp ( struct job_interface *job, struct net_device *netdev );
#endif /* _GPXE_DHCP_H */