diff options
Diffstat (limited to 'gio/gdbusprivate.c')
-rw-r--r-- | gio/gdbusprivate.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c index 55ac883ce..9149aab78 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); } |