X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-session-dbus.c;h=fa99c24fee57e6588c5973252d2db5f88e7ac523;hb=4084669c7f802c9745bcb6bed77bdaf49ffd896d;hp=3a7b1a0fb96010144f4a0e89301457dd2bdc10c1;hpb=81295bb5aced5d5350db11b0e9bb284e22d2ac37;p=elogind.git diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c index 3a7b1a0fb..fa99c24fe 100644 --- a/src/login/logind-session-dbus.c +++ b/src/login/logind-session-dbus.c @@ -22,15 +22,16 @@ #include #include -#include "util.h" -#include "strv.h" -#include "bus-util.h" +#include "alloc-util.h" #include "bus-common-errors.h" #include "bus-label.h" - -#include "logind.h" -#include "logind-session.h" +#include "bus-util.h" +#include "fd-util.h" #include "logind-session-device.h" +#include "logind-session.h" +#include "logind.h" +#include "strv.h" +#include "util.h" static int property_get_user( sd_bus *bus, @@ -163,7 +164,7 @@ static int property_get_idle_since_hint( sd_bus_error *error) { Session *s = userdata; - dual_timestamp t; + dual_timestamp t = DUAL_TIMESTAMP_NULL; uint64_t u; int r; @@ -191,6 +192,7 @@ int bus_session_method_terminate(sd_bus_message *message, void *userdata, sd_bus message, CAP_KILL, "org.freedesktop.login1.manage", + NULL, false, s->user->uid, &s->manager->polkit_registry, @@ -232,6 +234,7 @@ int bus_session_method_lock(sd_bus_message *message, void *userdata, sd_bus_erro message, CAP_SYS_ADMIN, "org.freedesktop.login1.lock-sessions", + NULL, false, s->user->uid, &s->manager->polkit_registry, @@ -306,6 +309,7 @@ int bus_session_method_kill(sd_bus_message *message, void *userdata, sd_bus_erro message, CAP_KILL, "org.freedesktop.login1.manage", + NULL, false, s->user->uid, &s->manager->polkit_registry, @@ -701,6 +705,11 @@ int session_send_create_reply(Session *s, sd_bus_error *error) { if (!s->create_message) return 0; +#if 0 /// elogind does not support scope and service jobs + if (!sd_bus_error_is_set(error) && (s->scope_job || s->user->service_job)) + return 0; +#endif // 0 + c = s->create_message; s->create_message = NULL;