]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
man: document that it is guaranteed that generated ID128 are never all-zero or all-one
authorLennart Poettering <lennart@poettering.net>
Wed, 26 May 2021 14:07:55 +0000 (16:07 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 26 May 2021 19:44:15 +0000 (21:44 +0200)
This is the case because the ID128 we generate are all marked as v4 UUID
which requires that some bits are zero and others are one. Let's
document this so that people can rely on SD_ID128_NULL being a special
value for "uninitialized" that is always distinguishable from generated
UUIDs.

man/sd_id128_get_machine.xml
man/sd_id128_randomize.xml

index 2df4496f19248e6703e8871d25aea7d7c0bb7028..7fa986089878c2535801328369502afda3f2bb31 100644 (file)
     <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details. The
     ID is cached internally. In future a different mechanism to determine the invocation ID may be added.</para>
 
-    <para>Note that <function>sd_id128_get_machine_app_specific()</function>, <function>sd_id128_get_boot()</function>,
-    <function>sd_id128_get_boot_app_specific()</function>, and <function>sd_id128_get_invocation()</function> always
-    return UUID v4 compatible IDs.  <function>sd_id128_get_machine()</function> will also return a UUID v4-compatible
-    ID on new installations but might not on older. It is possible to convert the machine ID into a UUID v4-compatible
-    one. For more information, see
-    <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
+    <para>Note that <function>sd_id128_get_machine_app_specific()</function>,
+    <function>sd_id128_get_boot()</function>, <function>sd_id128_get_boot_app_specific()</function>, and
+    <function>sd_id128_get_invocation()</function> always return UUID v4 compatible IDs.
+    <function>sd_id128_get_machine()</function> will also return a UUID v4-compatible ID on new installations
+    but might not on older. It is possible to convert the machine ID into a UUID v4-compatible one. For more
+    information, see
+    <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>. It is
+    hence guaranteed that thes functions will never return the ID consisting of all zero or all one bits
+    (<constant>SD_ID128_NULL</constant>, <constant>SD_ID128_ALLF</constant>) — with the possible exception of
+    <function>sd_id128_get_machine()</function>, as mentioned.</para>
 
     <para>For more information about the <literal>sd_id128_t</literal>
     type see
index cf6ca7726f1b7187824489b43febc66983f354be..0bc1d0abd8f40e68911740f65f46ba307a5a3e82 100644 (file)
@@ -42,8 +42,9 @@
     <filename>/dev/urandom</filename> kernel random number
     generator.</para>
 
-    <para>Note that <function>sd_id128_randomize()</function> always
-    returns a UUID v4-compatible ID.</para>
+    <para>Note that <function>sd_id128_randomize()</function> always returns a UUID v4-compatible ID. It is
+    hence guaranteed that this function will never return the ID consisting of all zero or all one bits
+    (<constant>SD_ID128_NULL</constant>, <constant>SD_ID128_ALLF</constant>).</para>
 
     <para>For more information about the <literal>sd_id128_t</literal>
     type, see