X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogind-session.c;fp=src%2Flogind-session.c;h=e71ff4f14e9aaca2ca5965653e4912ca4d8cb2ad;hb=a91e4e5337a46db3f0a4f1415c1b60285e5c33a3;hp=16d6c177d2b5fd298d00b0ebcf6878b0693193f3;hpb=31b79c2b4a34961eefc3b3680704124d8490d105;p=elogind.git diff --git a/src/logind-session.c b/src/logind-session.c index 16d6c177d..e71ff4f14 100644 --- a/src/logind-session.c +++ b/src/logind-session.c @@ -136,6 +136,11 @@ int session_save(Session *s) { s->remote, s->kill_processes); + if (s->type >= 0) + fprintf(f, + "TYPE=%s\n", + session_type_to_string(s->type)); + if (s->cgroup_path) fprintf(f, "CGROUP=%s\n", @@ -210,7 +215,8 @@ int session_load(Session *s) { *seat = NULL, *vtnr = NULL, *leader = NULL, - *audit_id = NULL; + *audit_id = NULL, + *type = NULL; int k, r; @@ -228,6 +234,7 @@ int session_load(Session *s) { "SERVICE", &s->service, "VTNR", &vtnr, "LEADER", &leader, + "TYPE", &type, NULL); if (r < 0) @@ -272,6 +279,14 @@ int session_load(Session *s) { } } + if (type) { + SessionType t; + + t = session_type_from_string(type); + if (t >= 0) + s->type = t; + } + finish: free(remote); free(kill_processes); @@ -809,7 +824,7 @@ void session_add_to_gc_queue(Session *s) { static const char* const session_type_table[_SESSION_TYPE_MAX] = { [SESSION_TTY] = "tty", [SESSION_X11] = "x11", - [SESSION_OTHER] = "other" + [SESSION_UNSPECIFIED] = "unspecified" }; DEFINE_STRING_TABLE_LOOKUP(session_type, SessionType);