X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fdbus-common.c;h=f57956732136f3e65276c44f56079016f082bb40;hb=e9c1ea9de87d4d508ac38ce87a2fa56e7529a91a;hp=5afce7627ae7db87b6b3ff33752cc3c3f9d1240e;hpb=2fa4092c2829dd14e50c430ae2f23551d23c6c1d;p=elogind.git diff --git a/src/shared/dbus-common.c b/src/shared/dbus-common.c index 5afce7627..f57956732 100644 --- a/src/shared/dbus-common.c +++ b/src/shared/dbus-common.c @@ -178,9 +178,9 @@ int bus_connect_system_ssh(const char *user, const char *host, DBusConnection ** assert(user || host); if (user && host) - asprintf(&p, "unixexec:path=ssh,argv1=-xT,argv2=%s@%s,argv3=systemd-stdio-bridge", user, host); + asprintf(&p, "unixexec:path=ssh,argv1=-xT,argv2=%s%%40%s,argv3=systemd-stdio-bridge", user, host); else if (user) - asprintf(&p, "unixexec:path=ssh,argv1=-xT,argv2=%s@localhost,argv3=systemd-stdio-bridge", user); + asprintf(&p, "unixexec:path=ssh,argv1=-xT,argv2=%s%%40localhost,argv3=systemd-stdio-bridge", user); else if (host) asprintf(&p, "unixexec:path=ssh,argv1=-xT,argv2=%s,argv3=systemd-stdio-bridge", host); @@ -258,12 +258,11 @@ const char *bus_error_message(const DBusError *error) { return error->message; } -const char *bus_error_message_or_strerror(const DBusError *error, int err) { - +const char *bus_error(const DBusError *error, int err) { if (error && dbus_error_is_set(error)) return bus_error_message(error); - return strerror(err); + return strerror(err < 0 ? -err : err); } DBusHandlerResult bus_default_message_handler(