X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Floginctl.c;h=6c173ed61a8bf362c16e38d5eef96fa2e794ee2d;hb=c8eba64529ffd5b106c96fce2afb73741cb2207f;hp=064411ea8ab6dddc4c8b3f196fffbd3456efa6ab;hpb=906b76b27be410af25aa7f79b4cfdb35f7f32fc7;p=elogind.git diff --git a/src/login/loginctl.c b/src/login/loginctl.c index 064411ea8..6c173ed61 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include "sd-bus.h" @@ -493,7 +492,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li if (i.scope) { printf("\t Unit: %s\n", i.scope); show_unit_cgroup(bus, "org.freedesktop.systemd1.Scope", i.scope, i.leader); - +#if 0 if (arg_transport == BUS_TRANSPORT_LOCAL) { show_journal_by_unit( @@ -509,6 +508,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li true, NULL); } +#endif } return 0; @@ -577,7 +577,7 @@ static int print_user_status_info(sd_bus *bus, const char *path, bool *new_line) if (i.slice) { printf("\t Unit: %s\n", i.slice); show_unit_cgroup(bus, "org.freedesktop.systemd1.Slice", i.slice, 0); - +#if 0 show_journal_by_unit( stdout, i.slice, @@ -590,6 +590,7 @@ static int print_user_status_info(sd_bus *bus, const char *path, bool *new_line) SD_JOURNAL_LOCAL_ONLY, true, NULL); +#endif } finish: @@ -846,6 +847,7 @@ static int show_seat(int argc, char *argv[], void *userdata) { static int activate(int argc, char *argv[], void *userdata) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; sd_bus *bus = userdata; + char *short_argv[3]; int r, i; assert(bus); @@ -858,13 +860,17 @@ static int activate(int argc, char *argv[], void *userdata) { * session name, which the calls will then resolve to * the caller's session. */ - argv = STRV_MAKE(argv[0], ""); + short_argv[0] = argv[0]; + short_argv[1] = (char*) ""; + short_argv[2] = NULL; + + argv = short_argv; argc = 2; } for (i = 1; i < argc; i++) { - r = sd_bus_call_method ( + r = sd_bus_call_method( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -899,7 +905,7 @@ static int kill_session(int argc, char *argv[], void *userdata) { for (i = 1; i < argc; i++) { - r = sd_bus_call_method ( + r = sd_bus_call_method( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -919,6 +925,7 @@ static int kill_session(int argc, char *argv[], void *userdata) { static int enable_linger(int argc, char *argv[], void *userdata) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; sd_bus *bus = userdata; + char* short_argv[3]; bool b; int r, i; @@ -930,7 +937,10 @@ static int enable_linger(int argc, char *argv[], void *userdata) { b = streq(argv[0], "enable-linger"); if (argc < 2) { - argv = STRV_MAKE(argv[0], ""); + short_argv[0] = argv[0]; + short_argv[1] = (char*) ""; + short_argv[2] = NULL; + argv = short_argv; argc = 2; } @@ -945,7 +955,7 @@ static int enable_linger(int argc, char *argv[], void *userdata) { return log_error_errno(r, "Failed to look up user %s: %m", argv[i]); } - r = sd_bus_call_method ( + r = sd_bus_call_method( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -979,7 +989,7 @@ static int terminate_user(int argc, char *argv[], void *userdata) { if (r < 0) return log_error_errno(r, "Failed to look up user %s: %m", argv[i]); - r = sd_bus_call_method ( + r = sd_bus_call_method( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -1016,7 +1026,7 @@ static int kill_user(int argc, char *argv[], void *userdata) { if (r < 0) return log_error_errno(r, "Failed to look up user %s: %m", argv[i]); - r = sd_bus_call_method ( + r = sd_bus_call_method( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -1045,7 +1055,7 @@ static int attach(int argc, char *argv[], void *userdata) { for (i = 2; i < argc; i++) { - r = sd_bus_call_method ( + r = sd_bus_call_method( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -1073,7 +1083,7 @@ static int flush_devices(int argc, char *argv[], void *userdata) { polkit_agent_open_if_enabled(); - r = sd_bus_call_method ( + r = sd_bus_call_method( bus, "org.freedesktop.login1", "/org/freedesktop/login1", @@ -1264,7 +1274,11 @@ static int parse_argv(int argc, char *argv[]) { break; case 'o': +#if 0 arg_output = output_mode_from_string(optarg); +#else + arg_output = -1; +#endif if (arg_output < 0) { log_error("Unknown output '%s'.", optarg); return -EINVAL; @@ -1366,6 +1380,8 @@ int main(int argc, char *argv[]) { goto finish; } + sd_bus_set_allow_interactive_authorization(bus, arg_ask_password); + r = loginctl_main(argc, argv, bus); finish: