From c5545884d23a275c64b80e7ddbfdd7914d3a3651 Mon Sep 17 00:00:00 2001 From: Robert Ancell Date: Wed, 3 Sep 2014 16:42:44 +1200 Subject: [PATCH] Don't try and guess if the session ID is from logind or ConsoleKit - be explicit --- src/session-child.c | 6 ++++++ src/session.c | 8 +++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/session-child.c b/src/session-child.c index 6cbfe8eb..98a973c0 100644 --- a/src/session-child.c +++ b/src/session-child.c @@ -547,7 +547,11 @@ session_child_run (int argc, char **argv) /* Check what logind session we are, or fallback to ConsoleKit */ login1_session = pam_getenv (pam_handle, "XDG_SESSION_ID"); if (login1_session) + { write_string (login1_session); + if (version >= 2) + write_string (NULL); + } else { g_variant_builder_init (&ck_parameters, G_VARIANT_TYPE ("(a(sv))")); @@ -569,6 +573,8 @@ session_child_run (int argc, char **argv) else g_variant_builder_add (&ck_parameters, "(sv)", "is-local", g_variant_new_boolean (TRUE)); console_kit_cookie = ck_open_session (&ck_parameters); + if (version >= 2) + write_string (NULL); write_string (console_kit_cookie); if (console_kit_cookie) { diff --git a/src/session.c b/src/session.c index 50304e88..25482416 100644 --- a/src/session.c +++ b/src/session.c @@ -626,7 +626,7 @@ session_real_start (Session *session) close (from_child_input); /* Indicate what version of the protocol we are using */ - version = 1; + version = 2; write_data (session, &version, sizeof (version)); /* Send configuration */ @@ -805,10 +805,8 @@ session_real_run (Session *session) for (i = 0; i < argc; i++) write_string (session, session->priv->argv[i]); - if (login1_service_get_is_connected (login1_service_get_instance ())) - session->priv->login1_session = read_string_from_child (session); - else - session->priv->console_kit_cookie = read_string_from_child (session); + session->priv->login1_session = read_string_from_child (session); + session->priv->console_kit_cookie = read_string_from_child (session); } void -- 2.39.2