提交 396c4d34 编写于 作者: M Milos Vyletel 提交者: Eric Blake

Generate RFC4122 compliant UUIDs

Even though http://libvirt.org/formatdomain.html#elementsMetadata
states that it requires RFC4122 compliance UUIDs that are generated
by virUUIDGenerate() are not. Following patch modifies generated
UUIDs to conform to rules described in RFC.
Signed-off-by: NMilos Vyletel <milos.vyletel@sde.cz>
上级 1bd955ed
...@@ -114,6 +114,25 @@ virUUIDGenerate(unsigned char *uuid) ...@@ -114,6 +114,25 @@ virUUIDGenerate(unsigned char *uuid)
err = virUUIDGeneratePseudoRandomBytes(uuid, VIR_UUID_BUFLEN); err = virUUIDGeneratePseudoRandomBytes(uuid, VIR_UUID_BUFLEN);
} }
/*
* Make UUID RFC 4122 compliant. Following form will be used:
*
* xxxxxxxx-xxxx-Axxx-Bxxx-xxxxxxxxxxxx
*
* where
* A is version defined in 4.1.3 of RFC
* Msb0 Msb1 Msb2 Msb3 Version Description
* 0 1 0 0 4 The randomly or pseudo-
* randomly generated version
* specified in this document.
*
* B is variant defined in 4.1.1 of RFC
* Msb0 Msb1 Msb2 Description
* 1 0 x The variant specified in this document.
*/
uuid[6] = (uuid[6] & 0x0F) | (4 << 4);
uuid[8] = (uuid[8] & 0x3F) | (2 << 6);
return err; return err;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册