chiark / gitweb /
logind: make sure login sessions are terminated with SIGHUP
[elogind.git] / src / login / logind-session-dbus.c
index 7aba3477aa397d857a8923c28e5c0bee55bd718a..2cc4d8587bff6452f6fee64142deea0efcdbe6b9 100644 (file)
@@ -62,7 +62,6 @@
         "  <property name=\"Class\" type=\"s\" access=\"read\"/>\n"     \
         "  <property name=\"Active\" type=\"b\" access=\"read\"/>\n"    \
         "  <property name=\"State\" type=\"s\" access=\"read\"/>\n"     \
-        "  <property name=\"KillProcesses\" type=\"b\" access=\"read\"/>\n" \
         "  <property name=\"IdleHint\" type=\"b\" access=\"read\"/>\n"  \
         "  <property name=\"IdleSinceHint\" type=\"t\" access=\"read\"/>\n" \
         "  <property name=\"IdleSinceHintMonotonic\" type=\"t\" access=\"read\"/>\n" \
@@ -536,6 +535,10 @@ int session_send_create_reply(Session *s, DBusError *error) {
         if (!s->create_message)
                 return 0;
 
+        /* This is called after the session scope was successfully
+         * created, and finishes where bus_manager_create_session()
+         * left off. */
+
         if (error) {
                 DBusError buffer;
 
@@ -589,6 +592,10 @@ int session_send_create_reply(Session *s, DBusError *error) {
                         return log_oom();
         }
 
+        /* Update the state file before we notify the client about the
+         * result */
+        session_save(s);
+
         if (!dbus_connection_send(s->manager->bus, reply, NULL))
                 return log_oom();