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.
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))"));
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);
}
{
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);
}
}
{
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);
}
}