chiark / gitweb /
logind: make sure login sessions are terminated with SIGHUP
[elogind.git] / src / login / logind-session-dbus.c
index 62b9ffd52a7f150cd63e276640f8fa622b9b2157..2cc4d8587bff6452f6fee64142deea0efcdbe6b9 100644 (file)
@@ -535,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;
 
@@ -588,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();