[pulseaudio-discuss] [PATCH] core: Fallbacks for machine-id in filesystem
Tanu Kaskinen
tanuk at iki.fi
Mon Jul 13 05:25:43 PDT 2015
On Tue, 2015-06-09 at 21:56 +0200, Peter Meerwald wrote:
> 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(-)
Thanks for addressing this! I have a couple of minor comments.
> 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. */
The new version of the comment doesn't sound very good to me. "...which
is the best option" in the original version really referred to the idea
of a machine-id file. Changing it to "...which are the best option"
referring to all the fallbacks sounds awkward. I don't think the
comment needs any modifications. If you still want to say something
about the fallbacks, I think that would be better done in a separate
sentence.
There's also a typo in one of the paths: "${sysconfdir}/etc/machine-id"
should be "${sysconfdir}/machine-id".
> 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
> + ) {
I wondered why you added the OS_IS_WIN32 check only around the two last
paths and not the whole machine-id section, but I guess it makes sense:
those last two paths will not exist in any sane configuration on
Windows, so no need to try them, but ${sysconfdir}/etc/machine-id or
${localstatedir}/lib/dbus/machine-id might exist at least in theory, if
libdbus is installed in the same directory hierarchy as PulseAudio.
However, PA_MACHINE_ID and PA_MACHINE_ID_FALLBACK contain forward
slashes, while Windows uses backslashes, so I wonder if the code
actually works as intended?
--
Tanu
More information about the pulseaudio-discuss
mailing list