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:
parent
31b79c2b4a
commit
a91e4e5337
@ -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);
|
||||
|
@ -31,9 +31,9 @@ typedef struct Session Session;
|
||||
#include "logind-user.h"
|
||||
|
||||
typedef enum SessionType {
|
||||
SESSION_UNSPECIFIED,
|
||||
SESSION_TTY,
|
||||
SESSION_X11,
|
||||
SESSION_OTHER,
|
||||
_SESSION_TYPE_MAX,
|
||||
_SESSION_TYPE_INVALID = -1
|
||||
} SessionType;
|
||||
|
Loading…
Reference in New Issue
Block a user