X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-session.c;fp=src%2Flogin%2Flogind-session.c;h=d67eb02f7d8d825a7d8293e20c27636b0fa0916d;hb=c3e41400d106b6c2482d9d42298fac1a6a882071;hp=a2709f3d0e853773d6cee59d82df3a1b8fb27851;hpb=9045f431a2a7d05a3a897829eb2c2f0b77edd2be;p=elogind.git diff --git a/src/login/logind-session.c b/src/login/logind-session.c index a2709f3d0..d67eb02f7 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -154,18 +154,6 @@ void session_set_user(Session *s, User *u) { LIST_PREPEND(sessions_by_user, u->sessions, s); } -static void session_save_devices(Session *s, FILE *f) { - SessionDevice *sd; - Iterator i; - - if (!hashmap_isempty(s->devices)) { - fprintf(f, "DEVICES="); - HASHMAP_FOREACH(sd, s->devices, i) - fprintf(f, "%u:%u ", major(sd->dev), minor(sd->dev)); - fprintf(f, "\n"); - } -} - int session_save(Session *s) { _cleanup_free_ char *temp_path = NULL; _cleanup_fclose_ FILE *f = NULL; @@ -297,10 +285,8 @@ int session_save(Session *s) { s->timestamp.realtime, s->timestamp.monotonic); - if (s->controller) { + if (s->controller) fprintf(f, "CONTROLLER=%s\n", s->controller); - session_save_devices(s, f); - } r = fflush_and_check(f); if (r < 0) @@ -322,43 +308,6 @@ fail: return log_error_errno(r, "Failed to save session data %s: %m", s->state_file); } -static int session_load_devices(Session *s, const char *devices) { - const char *p; - int r = 0; - - assert(s); - - for (p = devices;;) { - _cleanup_free_ char *word = NULL; - SessionDevice *sd; - dev_t dev; - int k; - - k = extract_first_word(&p, &word, NULL, 0); - if (k == 0) - break; - if (k < 0) { - r = k; - break; - } - - k = parse_dev(word, &dev); - if (k < 0) { - r = k; - continue; - } - - /* The file descriptors for loaded devices will be reattached later. */ - k = session_device_new(s, dev, false, &sd); - if (k < 0) - r = k; - } - - if (r < 0) - log_error_errno(r, "Loading session devices for session %s failed: %m", s->id); - - return r; -} int session_load(Session *s) { _cleanup_free_ char *remote = NULL, @@ -372,9 +321,7 @@ int session_load(Session *s) { *uid = NULL, *realtime = NULL, *monotonic = NULL, - *controller = NULL, - *active = NULL, - *devices = NULL; + *controller = NULL; int k, r; @@ -404,8 +351,6 @@ int session_load(Session *s) { "REALTIME", &realtime, "MONOTONIC", &monotonic, "CONTROLLER", &controller, - "ACTIVE", &active, - "DEVICES", &devices, NULL); if (r < 0) @@ -508,17 +453,10 @@ int session_load(Session *s) { if (monotonic) timestamp_deserialize(monotonic, &s->timestamp.monotonic); - if (active) { - k = parse_boolean(active); - if (k >= 0) - s->was_active = k; - } - if (controller) { - if (bus_name_has_owner(s->manager->bus, controller, NULL) > 0) { + if (bus_name_has_owner(s->manager->bus, controller, NULL) > 0) session_set_controller(s, controller, false, false); - session_load_devices(s, devices); - } else + else session_restore_vt(s); }