1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 18:27:04 +03:00

logind: save/restore session type

This commit is contained in:
Lennart Poettering 2011-06-24 23:50:39 +02:00
parent 31b79c2b4a
commit a91e4e5337
2 changed files with 18 additions and 3 deletions

View File

@ -136,6 +136,11 @@ int session_save(Session *s) {
s->remote, s->remote,
s->kill_processes); s->kill_processes);
if (s->type >= 0)
fprintf(f,
"TYPE=%s\n",
session_type_to_string(s->type));
if (s->cgroup_path) if (s->cgroup_path)
fprintf(f, fprintf(f,
"CGROUP=%s\n", "CGROUP=%s\n",
@ -210,7 +215,8 @@ int session_load(Session *s) {
*seat = NULL, *seat = NULL,
*vtnr = NULL, *vtnr = NULL,
*leader = NULL, *leader = NULL,
*audit_id = NULL; *audit_id = NULL,
*type = NULL;
int k, r; int k, r;
@ -228,6 +234,7 @@ int session_load(Session *s) {
"SERVICE", &s->service, "SERVICE", &s->service,
"VTNR", &vtnr, "VTNR", &vtnr,
"LEADER", &leader, "LEADER", &leader,
"TYPE", &type,
NULL); NULL);
if (r < 0) 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: finish:
free(remote); free(remote);
free(kill_processes); 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] = { static const char* const session_type_table[_SESSION_TYPE_MAX] = {
[SESSION_TTY] = "tty", [SESSION_TTY] = "tty",
[SESSION_X11] = "x11", [SESSION_X11] = "x11",
[SESSION_OTHER] = "other" [SESSION_UNSPECIFIED] = "unspecified"
}; };
DEFINE_STRING_TABLE_LOOKUP(session_type, SessionType); DEFINE_STRING_TABLE_LOOKUP(session_type, SessionType);

View File

@ -31,9 +31,9 @@ typedef struct Session Session;
#include "logind-user.h" #include "logind-user.h"
typedef enum SessionType { typedef enum SessionType {
SESSION_UNSPECIFIED,
SESSION_TTY, SESSION_TTY,
SESSION_X11, SESSION_X11,
SESSION_OTHER,
_SESSION_TYPE_MAX, _SESSION_TYPE_MAX,
_SESSION_TYPE_INVALID = -1 _SESSION_TYPE_INVALID = -1
} SessionType; } SessionType;