chiark / gitweb /
man: introduce new "Desktop" property for sessions
[elogind.git] / src / login / logind-session.c
index ff0a7a4f2e2253094317f1e2cba5a3d3b3636aac..ca2e48570c74c1a12b47565521f032a693e23801 100644 (file)
@@ -143,6 +143,7 @@ void session_free(Session *s) {
         free(s->remote_host);
         free(s->remote_user);
         free(s->service);
+        free(s->desktop);
 
         hashmap_remove(s->manager->sessions, s->id);
 
@@ -229,6 +230,9 @@ int session_save(Session *s) {
         if (s->service)
                 fprintf(f, "SERVICE=%s\n", s->service);
 
+        if (s->desktop)
+                fprintf(f, "DESKTOP=%s\n", s->desktop);
+
         if (s->seat && seat_has_vts(s->seat))
                 fprintf(f, "VTNR=%u\n", s->vtnr);
 
@@ -294,6 +298,7 @@ int session_load(Session *s) {
                            "REMOTE_HOST",    &s->remote_host,
                            "REMOTE_USER",    &s->remote_user,
                            "SERVICE",        &s->service,
+                           "DESKTOP",        &s->desktop,
                            "VTNR",           &vtnr,
                            "POS",            &pos,
                            "LEADER",         &leader,
@@ -520,7 +525,7 @@ int session_start(Session *s) {
         if (r < 0)
                 return r;
 
-        log_struct(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG,
+        log_struct(s->class == SESSION_BACKGROUND ? LOG_DEBUG : LOG_INFO,
                    MESSAGE_ID(SD_MESSAGE_SESSION_START),
                    "SESSION_ID=%s", s->id,
                    "USER_ID=%s", s->user->name,
@@ -605,7 +610,7 @@ int session_finalize(Session *s) {
                 return -ESTALE;
 
         if (s->started)
-                log_struct(s->type == SESSION_TTY || s->type == SESSION_X11 ? LOG_INFO : LOG_DEBUG,
+                log_struct(s->class == SESSION_BACKGROUND ? LOG_DEBUG : LOG_INFO,
                            MESSAGE_ID(SD_MESSAGE_SESSION_STOP),
                            "SESSION_ID=%s", s->id,
                            "USER_ID=%s", s->user->name,
@@ -1077,7 +1082,8 @@ DEFINE_STRING_TABLE_LOOKUP(session_state, SessionState);
 static const char* const session_type_table[_SESSION_TYPE_MAX] = {
         [SESSION_TTY] = "tty",
         [SESSION_X11] = "x11",
-        [SESSION_UNSPECIFIED] = "unspecified"
+        [SESSION_WAYLAND] = "wayland",
+        [SESSION_UNSPECIFIED] = "unspecified",
 };
 
 DEFINE_STRING_TABLE_LOOKUP(session_type, SessionType);