diff options
Diffstat (limited to 'src/login/logind-session-dbus.c')
-rw-r--r-- | src/login/logind-session-dbus.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c index 9103781289..ef73cd434a 100644 --- a/src/login/logind-session-dbus.c +++ b/src/login/logind-session-dbus.c @@ -40,6 +40,8 @@ " <arg name=\"who\" type=\"s\"/>\n" \ " <arg name=\"signal\" type=\"s\"/>\n" \ " </method>\n" \ + " <signal name=\"Lock\"/>\n" \ + " <signal name=\"Unlock\"/>\n" \ " <property name=\"Id\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"User\" type=\"(uo)\" access=\"read\"/>\n" \ " <property name=\"Name\" type=\"s\" access=\"read\"/>\n" \ @@ -183,12 +185,16 @@ static int bus_session_append_idle_hint_since(DBusMessageIter *i, const char *pr Session *s = data; dual_timestamp t; uint64_t u; + int r; assert(i); assert(property); assert(s); - session_get_idle_hint(s, &t); + r = session_get_idle_hint(s, &t); + if (r < 0) + return r; + u = streq(property, "IdleSinceHint") ? t.realtime : t.monotonic; if (!dbus_message_iter_append_basic(i, DBUS_TYPE_UINT64, &u)) @@ -564,3 +570,21 @@ int session_send_lock(Session *s, bool lock) { return 0; } + +int session_send_lock_all(Manager *m, bool lock) { + Session *session; + Iterator i; + int r = 0; + + assert(m); + + HASHMAP_FOREACH(session, m->sessions, i) { + int k; + + k = session_send_lock(session, lock); + if (k < 0) + r = k; + } + + return r; +} |