From d665bc0d9eb664ec152fb5f61b3ff1b9bdeb8149 Mon Sep 17 00:00:00 2001 From: Peter Meerwald Date: Tue, 9 Jun 2015 21:52:57 +0200 Subject: [PATCH] core: Fallbacks for machine-id in filesystem see https://bugs.freedesktop.org/show_bug.cgi?id=88834 Signed-off-by: Peter Meerwald --- 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