Fix creation of the htype field; the ll_proto field from which it is

derived is a 16-bit big-endian field, but htype is only 8 bits wide.
This commit is contained in:
Michael Brown
2006-07-17 13:07:14 +00:00
parent 35b0233baa
commit 6c01d3bb95
2 changed files with 12 additions and 7 deletions

View File

@@ -23,7 +23,9 @@ struct dhcp_packet {
uint8_t op;
/** Hardware address type
*
* This is an ARPHRD_XXX constant.
* This is an ARPHRD_XXX constant. Note that ARPHRD_XXX
* constants are nominally 16 bits wide; this could be
* considered to be a bug in the BOOTP/DHCP specification.
*/
uint8_t htype;
/** Hardware address length */
@@ -274,6 +276,14 @@ struct dhcp_option_block {
signed int priority;
};
/** A DHCP session */
struct dhcp_session {
/** Network device being configured */
struct net_device *netdev;
/** Transaction ID, in network-endian order */
uint32_t xid;
};
extern unsigned long dhcp_num_option ( struct dhcp_option *option );
extern struct dhcp_option *
find_dhcp_option ( struct dhcp_option_block *options, unsigned int tag );