X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl.c;h=02c8e30418b6e49b312b6e5b8baa6d6be705d163;hb=fa0f4d8a3a640b235f12e9eb998ce726495622c1;hp=6977f85b3f7d0daeceeb3b15de6dcefce94e8b48;hpb=5f75059770f5faacfd52596d1a612bffcdd87187;p=elogind.git diff --git a/src/systemctl.c b/src/systemctl.c index 6977f85b3..02c8e3041 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -856,6 +856,7 @@ static int check_unit(DBusConnection *bus, char **args, unsigned n) { if (!arg_quiet) puts("unknown"); + dbus_error_free(&error); continue; } @@ -951,7 +952,7 @@ static void show_cgroup(const char *name) { if (!f) return; - printf("\t\t │\n"); + printf("\t\t \342\224\202\n"); while (!feof(f)) { unsigned long ul; @@ -965,7 +966,7 @@ static void show_cgroup(const char *name) { if (last > 0) { char *t = NULL; get_process_cmdline(last, 60, &t); - printf("\t\t ├ %lu %s\n", (unsigned long) last, strna(t)); + printf("\t\t \342\224\234 %lu %s\n", (unsigned long) last, strna(t)); free(t); } @@ -975,7 +976,7 @@ static void show_cgroup(const char *name) { if (last > 0) { char *t = NULL; get_process_cmdline(last, 60, &t); - printf("\t\t └ %lu %s\n", (unsigned long) last, strna(t)); + printf("\t\t \342\224\224 %lu %s\n", (unsigned long) last, strna(t)); free(t); } @@ -1618,6 +1619,42 @@ static int show(DBusConnection *bus, char **args, unsigned n) { goto finish; } + if (!(reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error))) { + + if (!dbus_error_has_name(&error, DBUS_ERROR_ACCESS_DENIED)) { + log_error("Failed to issue method call: %s", error.message); + r = -EIO; + goto finish; + } + + dbus_error_free(&error); + + dbus_message_unref(m); + if (!(m = dbus_message_new_method_call( + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1", + "org.freedesktop.systemd1.Manager", + "GetUnit"))) { + log_error("Could not allocate message."); + r = -ENOMEM; + goto finish; + } + + if (!dbus_message_append_args(m, + DBUS_TYPE_STRING, &args[i], + DBUS_TYPE_INVALID)) { + log_error("Could not append arguments to message."); + r = -ENOMEM; + goto finish; + } + + if (!(reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error))) { + log_error("Failed to issue method call: %s", error.message); + r = -EIO; + goto finish; + } + } + } else { if (!(m = dbus_message_new_method_call( @@ -1637,12 +1674,12 @@ static int show(DBusConnection *bus, char **args, unsigned n) { r = -ENOMEM; goto finish; } - } - if (!(reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error))) { - log_error("Failed to issue method call: %s", error.message); - r = -EIO; - goto finish; + if (!(reply = dbus_connection_send_with_reply_and_block(bus, m, -1, &error))) { + log_error("Failed to issue method call: %s", error.message); + r = -EIO; + goto finish; + } } if (!dbus_message_get_args(reply, &error,