[pulseaudio-discuss] [PATCH] core: Fallbacks for machine-id in filesystem

Peter Meerwald pmeerw at pmeerw.net
Tue Jun 9 12:56:36 PDT 2015


see https://bugs.freedesktop.org/show_bug.cgi?id=88834

Signed-off-by: Peter Meerwald <pmeerw at pmeerw.net>
---
 src/pulsecore/core-util.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index ad5b2d2..edb9e38 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -3059,12 +3059,21 @@ char *pa_machine_id(void) {
     /* The returned value is supposed be some kind of ascii identifier
      * that is unique and stable across reboots. */
 
-    /* First we try the /etc/machine-id, which is the best option we
-     * have, since it fits perfectly our needs and is not as volatile
+    /* First we try ${sysconfdir}/etc/machine-id, with fallbacks to
+     * ${localstatedir}/lib/dbus/machine-id, /etc/machine-id and
+     * /var/lib/dbus/machine-id, which are the best option we
+     * have, since they fit perfectly our needs and are not as volatile
      * as the hostname which might be set from dhcp. */
 
     if ((f = pa_fopen_cloexec(PA_MACHINE_ID, "r")) ||
-        (f = pa_fopen_cloexec(PA_MACHINE_ID_FALLBACK, "r"))) {
+        (f = pa_fopen_cloexec(PA_MACHINE_ID_FALLBACK, "r")) ||
+#if !defined(OS_IS_WIN32)
+        (f = pa_fopen_cloexec("/etc/machine-id", "r")) ||
+        (f = pa_fopen_cloexec("/var/lib/dbus/machine-id", "r"))
+#else
+        false
+#endif
+        ) {
         char ln[34] = "", *r;
 
         r = fgets(ln, sizeof(ln)-1, f);
-- 
1.9.1



More information about the pulseaudio-discuss mailing list