chiark / gitweb /
remove unused variables
[elogind.git] / src / login / logind-user.c
index 441e0860d9500f1e658ed5f566c6bc93863194e6..fdbf6e3aa08ef73df5e30a283932004e49e34b45 100644 (file)
@@ -145,10 +145,10 @@ int user_save(User *u) {
 
         if (dual_timestamp_is_set(&u->timestamp))
                 fprintf(f,
-                        "REALTIME=%llu\n"
-                        "MONOTONIC=%llu\n",
-                        (unsigned long long) u->timestamp.realtime,
-                        (unsigned long long) u->timestamp.monotonic);
+                        "REALTIME="USEC_FMT"\n"
+                        "MONOTONIC="USEC_FMT"\n",
+                        u->timestamp.realtime,
+                        u->timestamp.monotonic);
 
         if (u->sessions) {
                 Session *i;
@@ -247,7 +247,7 @@ int user_save(User *u) {
 
 finish:
         if (r < 0)
-                log_error("Failed to save user data for %s: %s", u->name, strerror(-r));
+                log_error("Failed to save user data %s: %s", u->state_file, strerror(-r));
 
         return r;
 }
@@ -515,6 +515,8 @@ int user_stop(User *u) {
         if (k < 0)
                 r = k;
 
+        u->stopping = true;
+
         user_save(u);
 
         return r;
@@ -633,25 +635,27 @@ void user_add_to_gc_queue(User *u) {
 
 UserState user_get_state(User *u) {
         Session *i;
-        bool all_closing = true;
 
         assert(u);
 
-        if (u->closing)
+        if (u->stopping)
                 return USER_CLOSING;
 
         if (u->slice_job || u->service_job)
                 return USER_OPENING;
 
-        LIST_FOREACH(sessions_by_user, i, u->sessions) {
-                if (session_is_active(i))
-                        return USER_ACTIVE;
-                if (session_get_state(i) != SESSION_CLOSING)
-                        all_closing = false;
-        }
+        if (u->sessions) {
+                bool all_closing = true;
+
+                LIST_FOREACH(sessions_by_user, i, u->sessions) {
+                        if (session_is_active(i))
+                                return USER_ACTIVE;
+                        if (session_get_state(i) != SESSION_CLOSING)
+                                all_closing = false;
+                }
 
-        if (u->sessions)
                 return all_closing ? USER_CLOSING : USER_ONLINE;
+        }
 
         if (user_check_linger_file(u) > 0)
                 return USER_LINGERING;