mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-26 19:29:04 +00:00
[dhcp] Use PXE byte ordering for UUID in DHCP option 97
The PXE spec does not specify a byte ordering for UUIDs, but RFC4578 suggests that it follows the EFI spec, in which the first three fields are little-endian. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
9e896d0eea
commit
a9b63ecda5
@ -1041,10 +1041,17 @@ int dhcp_create_request ( struct dhcp_packet *dhcppkt,
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Add client UUID, if we have one. Required for PXE. */
|
||||
/* Add client UUID, if we have one. Required for PXE. The
|
||||
* PXE spec does not specify a byte ordering for UUIDs, but
|
||||
* RFC4578 suggests that it follows the EFI spec, in which the
|
||||
* first three fields are little-endian.
|
||||
*/
|
||||
client_uuid.type = DHCP_CLIENT_UUID_TYPE;
|
||||
if ( ( len = fetch_uuid_setting ( NULL, &uuid_setting,
|
||||
&client_uuid.uuid ) ) >= 0 ) {
|
||||
__bswap_32s ( &client_uuid.uuid.canonical.a );
|
||||
__bswap_16s ( &client_uuid.uuid.canonical.b );
|
||||
__bswap_16s ( &client_uuid.uuid.canonical.c );
|
||||
if ( ( rc = dhcppkt_store ( dhcppkt, DHCP_CLIENT_UUID,
|
||||
&client_uuid,
|
||||
sizeof ( client_uuid ) ) ) != 0 ) {
|
||||
|
Loading…
Reference in New Issue
Block a user