mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-03-08 20:58:20 +03:00
loginctl: use /org/freedesktop/login1/session/auto when "lock-session" is called without argument
This way we'll use the "display" session automatically, and that makes the call work when invoked from user@.service. Fixes: #13614
This commit is contained in:
parent
fbbe240b21
commit
dc084399fa
@ -981,7 +981,6 @@ static int show_seat(int argc, char *argv[], void *userdata) {
|
||||
static int activate(int argc, char *argv[], void *userdata) {
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
sd_bus *bus = userdata;
|
||||
char *short_argv[3];
|
||||
int r, i;
|
||||
|
||||
assert(bus);
|
||||
@ -990,12 +989,20 @@ static int activate(int argc, char *argv[], void *userdata) {
|
||||
polkit_agent_open_if_enabled(arg_transport, arg_ask_password);
|
||||
|
||||
if (argc < 2) {
|
||||
short_argv[0] = argv[0];
|
||||
short_argv[1] = (char*) "";
|
||||
short_argv[2] = NULL;
|
||||
r = sd_bus_call_method(
|
||||
bus,
|
||||
"org.freedesktop.login1",
|
||||
"/org/freedesktop/login1/session/auto",
|
||||
"org.freedesktop.login1.Session",
|
||||
streq(argv[0], "lock-session") ? "Lock" :
|
||||
streq(argv[0], "unlock-session") ? "Unlock" :
|
||||
streq(argv[0], "terminate-session") ? "Terminate" :
|
||||
"Activate",
|
||||
&error, NULL, NULL);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to issue method call: %s", bus_error_message(&error, r));
|
||||
|
||||
argv = short_argv;
|
||||
argc = 2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user