chiark / gitweb /
logind: when setting a new controller, don't prepare the VT if logind is restarted
[elogind.git] / src / login / logind-session.c
index a2709f3d0e853773d6cee59d82df3a1b8fb27851..d67eb02f7d8d825a7d8293e20c27636b0fa0916d 100644 (file)
@@ -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);
         }