From 844828cb157491121d6110d903cc84a9e4a75d02 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 27 Feb 2008 16:55:46 +0000 Subject: [PATCH] [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. --- src/net/udp/dhcp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/net/udp/dhcp.c b/src/net/udp/dhcp.c index 2521f9ac..081fa841 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 );