]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Instead of relying on LOGIND_RUNNING being false, test for the systemd session ID...
authorIain Lane <iain.lane@canonical.com>
Fri, 19 Apr 2013 16:58:37 +0000 (17:58 +0100)
committerIain Lane <iain.lane@canonical.com>
Fri, 19 Apr 2013 16:58:37 +0000 (17:58 +0100)
I noticed that in the testsuite we were having logind fail to activate, due to
the mocking, but CK wasn't being set up. This turned out to be because
/run/systemd/seats/ from the home system is still obviously present, making
LOGIND_RUNNING return true when it shouldn't.

src/session-child.c
src/session.c

index af3b4922f1f08f2bac3dd9bf39b07a54b3757946..d174b5e61b68b230064981863ec4e1d225f4fa62 100644 (file)
@@ -429,7 +429,8 @@ session_child_run (int argc, char **argv)
         systemd_logind_session = logind_get_session_id ();
         write_string (systemd_logind_session);
     }
-    else
+
+    if (!systemd_logind_session)
     {
         /* Open a Console Kit session */
         g_variant_builder_init (&ck_parameters, G_VARIANT_TYPE ("(a(sv))"));
index 9a3759626bb9f08dd763abb024a754cce049691a..c43d6b108511e08e7cffa694cc057f2a52cbb294 100644 (file)
@@ -566,7 +566,7 @@ session_run (Session *session, gchar **argv)
 
     if (LOGIND_RUNNING ())
       session->priv->systemd_logind_session = read_string_from_child (session);
-    else
+    if (!session->priv->systemd_logind_session)
       session->priv->console_kit_cookie = read_string_from_child (session);
 }
 
@@ -578,7 +578,7 @@ session_lock (Session *session)
     {
         if (LOGIND_RUNNING ())
             logind_lock_session (session->priv->systemd_logind_session);
-        else
+        if (!session->priv->systemd_logind_session)
             ck_lock_session (session->priv->console_kit_cookie);
     }
 }
@@ -591,7 +591,7 @@ session_unlock (Session *session)
     {
         if (LOGIND_RUNNING ())
             logind_unlock_session (session->priv->systemd_logind_session);
-        else
+        if (!session->priv->systemd_logind_session)
             ck_unlock_session (session->priv->console_kit_cookie);
     }
 }