X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-dbus.c;h=7245ee7ab53a7c134f2bdd8efc470e00a90f9827;hb=901cf821ac8c13c78e1acb884f59baf41316fb8f;hp=a6cc9be669d9c16462e7637cb69d65bd2a78bc99;hpb=9cd66b6bb933e4e307aa9e7cfc664e8916e0a3f0;p=elogind.git diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index a6cc9be66..7245ee7ab 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -40,6 +40,8 @@ #include "selinux-util.h" #include "efivars.h" #include "logind.h" +#include "formats-util.h" +#include "process-util.h" int manager_get_session_from_creds(Manager *m, sd_bus_message *message, const char *name, sd_bus_error *error, Session **ret) { _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; @@ -1526,6 +1528,7 @@ static int method_do_shutdown_or_sleep( const char *action_multiple_sessions, const char *action_ignore_inhibit, const char *sleep_verb, + sd_bus_message_handler_t method, sd_bus_error *error) { _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; @@ -1540,6 +1543,7 @@ static int method_do_shutdown_or_sleep( assert(action); assert(action_multiple_sessions); assert(action_ignore_inhibit); + assert(method); r = sd_bus_message_read(message, "b", &interactive); if (r < 0) @@ -1615,6 +1619,7 @@ static int method_poweroff(sd_bus *bus, sd_bus_message *message, void *userdata, "org.freedesktop.login1.power-off-multiple-sessions", "org.freedesktop.login1.power-off-ignore-inhibit", NULL, + method_poweroff, error); } @@ -1629,6 +1634,7 @@ static int method_reboot(sd_bus *bus, sd_bus_message *message, void *userdata, s "org.freedesktop.login1.reboot-multiple-sessions", "org.freedesktop.login1.reboot-ignore-inhibit", NULL, + method_reboot, error); } @@ -1643,6 +1649,7 @@ static int method_suspend(sd_bus *bus, sd_bus_message *message, void *userdata, "org.freedesktop.login1.suspend-multiple-sessions", "org.freedesktop.login1.suspend-ignore-inhibit", "suspend", + method_suspend, error); } @@ -1657,6 +1664,7 @@ static int method_hibernate(sd_bus *bus, sd_bus_message *message, void *userdata "org.freedesktop.login1.hibernate-multiple-sessions", "org.freedesktop.login1.hibernate-ignore-inhibit", "hibernate", + method_hibernate, error); } @@ -1671,6 +1679,7 @@ static int method_hybrid_sleep(sd_bus *bus, sd_bus_message *message, void *userd "org.freedesktop.login1.hibernate-multiple-sessions", "org.freedesktop.login1.hibernate-ignore-inhibit", "hybrid-sleep", + method_hybrid_sleep, error); }