chiark / gitweb /
logind: implement D-Bus properties
[elogind.git] / src / logind-session.c
index 566323d1e6619fb7cb235719332c9ebfc3e96468..6b3b277897544084b844aef1331e6b8c02ada2d0 100644 (file)
@@ -83,14 +83,11 @@ void session_free(Session *s) {
         free(s->tty);
         free(s->display);
         free(s->remote_host);
+        free(s->remote_user);
 
         hashmap_remove(s->manager->sessions, s->id);
 
-        if (s->state_file) {
-                unlink(s->state_file);
-                free(s->state_file);
-        }
-
+        free(s->state_file);
         free(s);
 }
 
@@ -151,6 +148,11 @@ int session_save(Session *s) {
                         "REMOTE_HOST=%s\n",
                         s->remote_host);
 
+        if (s->remote_user)
+                fprintf(f,
+                        "REMOTE_USER=%s\n",
+                        s->remote_user);
+
         if (s->seat && s->seat->manager->vtconsole == s->seat)
                 fprintf(f,
                         "VTNR=%i\n",
@@ -445,7 +447,8 @@ int session_stop(Session *s) {
         /* Remove X11 symlink */
         session_unlink_x11_socket(s);
 
-        session_save(s);
+        unlink(s->state_file);
+        session_add_to_gc_queue(s);
 
         return r;
 }
@@ -498,7 +501,7 @@ void session_add_to_gc_queue(Session *s) {
 }
 
 static const char* const session_type_table[_SESSION_TYPE_MAX] = {
-        [SESSION_TERMINAL] = "terminal",
+        [SESSION_TTY] = "tty",
         [SESSION_X11] = "x11"
 };