From dc89b51c2d71088c014ec94572629aabf143310e Mon Sep 17 00:00:00 2001 From: Alexandre Rostovtsev Date: Wed, 16 Nov 2011 15:05:46 +0000 Subject: [PATCH] _g_dbus_get_machine_id(): check /etc/machine-id too machine-id can be in /etc or in /var/lib/dbus. [amended with slightly revised error handling -smcv] Bug: https://bugzilla.gnome.org/show_bug.cgi?id=663928 --- gio/gdbusprivate.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c index 55ac883..9149aab 100644 --- a/gio/gdbusprivate.c +++ b/gio/gdbusprivate.c @@ -1983,17 +1983,26 @@ gchar * _g_dbus_get_machine_id (GError **error) { gchar *ret; + GError *first_error; /* TODO: use PACKAGE_LOCALSTATEDIR ? */ ret = NULL; + first_error = NULL; if (!g_file_get_contents ("/var/lib/dbus/machine-id", &ret, NULL, - error)) + &first_error) && + !g_file_get_contents ("/etc/machine-id", + &ret, + NULL, + NULL)) { - g_prefix_error (error, _("Unable to load /var/lib/dbus/machine-id: ")); + g_propagate_prefixed_error (error, first_error, + _("Unable to load /var/lib/dbus/machine-id or /etc/machine-id: ")); } else { + /* ignore the error from the first try, if any */ + g_clear_error (&first_error); /* TODO: validate value */ g_strstrip (ret); } -- 2.7.4