X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fdbus-common.c;h=0c73d6c6a870b04b1419f6fb9614df56f941a2e8;hb=19876c9b3de85f3b82dc3b8bbcaf3297b0d51edf;hp=bcbef77b53411d2739874145b275d38470f62c56;hpb=3137e0bd5290fea67e52cfe7ff657c3af400b548;p=elogind.git diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c index bcbef77b5..0c73d6c6a 100644 --- a/src/shared/dbus-common.c +++ b/src/shared/dbus-common.c @@ -32,6 +32,7 @@ #include "log.h" #include "dbus-common.h" #include "util.h" +#include "missing.h" #include "def.h" #include "strv.h" @@ -121,7 +122,7 @@ int bus_connect(DBusBusType t, DBusConnection **_bus, bool *_private, DBusError * try via XDG_RUNTIME_DIR first, then * fallback to normal bus access */ - e = __secure_getenv("XDG_RUNTIME_DIR"); + e = secure_getenv("XDG_RUNTIME_DIR"); if (e) { char *p; @@ -1253,14 +1254,16 @@ bool bus_error_is_no_service(const DBusError *error) { return startswith(error->name, "org.freedesktop.DBus.Error.Spawn."); } -int bus_method_call_with_reply(DBusConnection *bus, - const char *destination, - const char *path, - const char *interface, - const char *method, - DBusMessage **return_reply, - DBusError *return_error, - int first_arg_type, ...) { +int bus_method_call_with_reply( + DBusConnection *bus, + const char *destination, + const char *path, + const char *interface, + const char *method, + DBusMessage **return_reply, + DBusError *return_error, + int first_arg_type, ...) { + DBusError error; DBusMessage *m, *reply; va_list ap; @@ -1287,6 +1290,7 @@ int bus_method_call_with_reply(DBusConnection *bus, if (!reply) { if (!return_error) log_error("Failed to issue method call: %s", bus_error_message(&error)); + if (bus_error_is_no_service(&error)) r = -ENOENT; else if (dbus_error_has_name(&error, DBUS_ERROR_ACCESS_DENIED))