From: Michael Brown Date: Wed, 27 Feb 2008 16:55:46 +0000 (+0000) Subject: [DHCP] Fix RFC4390 client identifier constructions. X-Git-Tag: v0.9.4~231 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=844828cb157491121d6110d903cc84a9e4a75d02;p=thirdparty%2Fipxe.git [DHCP] Fix RFC4390 client identifier constructions. RFC 4390 provides for the DHCP client identifier to contain the link-layer hardware type and MAC address when the MAC address exceeds 16 bytes. However, the hardware type field is only 8 bits; we were assuming 16 bits. --- diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c index 2521f9ac9..081fa841a 100644 --- a/src/net/udp/dhcp.c +++ b/src/net/udp/dhcp.c @@ -610,7 +610,7 @@ int create_dhcp_request ( struct net_device *netdev, int msgtype, /* Add DHCP client identifier. Required for Infiniband, and * doesn't hurt other link layers. */ - client_id.ll_proto = netdev->ll_protocol->ll_proto; + client_id.ll_proto = ntohs ( netdev->ll_protocol->ll_proto ); ll_addr_len = netdev->ll_protocol->ll_addr_len; assert ( ll_addr_len <= sizeof ( client_id.ll_addr ) ); memcpy ( client_id.ll_addr, netdev->ll_addr, ll_addr_len );