diff options
Diffstat (limited to 'sysutils/consolekit/files/patch-tools_ck-collect-session-info.c')
| -rw-r--r-- | sysutils/consolekit/files/patch-tools_ck-collect-session-info.c | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/sysutils/consolekit/files/patch-tools_ck-collect-session-info.c b/sysutils/consolekit/files/patch-tools_ck-collect-session-info.c deleted file mode 100644 index 6ec8b5ff4d7e..000000000000 --- a/sysutils/consolekit/files/patch-tools_ck-collect-session-info.c +++ /dev/null @@ -1,92 +0,0 @@ -$OpenBSD: patch-tools_ck-collect-session-info_c,v 1.1 2011/04/28 13:08:33 ajacoutot Exp $ - -XXX revert 4f88228f31a63c026c424a92827f26ad7535275c -The Kit people assume the world runs Linux and PAM, see -https://bugs.freedesktop.org/show_bug.cgi?id=28377 ---- tools/ck-collect-session-info.c.orig 2013-08-10 20:47:52.000000000 +0200 -+++ tools/ck-collect-session-info.c 2013-08-10 20:47:33.000000000 +0200 -@@ -226,6 +226,12 @@ fill_x11_info (SessionInfo *si) - gboolean res; - CkProcessStat *xorg_stat; - GError *error; -+ char *err; -+ char *out; -+ int status; -+ int i; -+ char *argv[4]; -+ GPtrArray *env; - - /* assume this is true then check it */ - si->x11_display = ck_unix_pid_get_env (si->pid, "DISPLAY"); -@@ -272,9 +278,56 @@ fill_x11_info (SessionInfo *si) - } - - si->x11_display_device = ck_process_stat_get_tty (xorg_stat); -+ if (g_strcmp0 (si->x11_display_device, si->display_device) != 0) { -+ goto gotit; -+ } -+ -+ g_free (si->x11_display_device); -+ -+ /* get the applicable environment */ -+ env = get_filtered_environment (si->pid); -+ -+ argv[0] = LIBEXECDIR "/ck-get-x11-display-device"; -+ argv[1] = NULL; -+ -+ error = NULL; -+ out = NULL; -+ err = NULL; -+ status = -1; -+ res = g_spawn_sync (NULL, -+ argv, -+ (char **)env->pdata, -+ 0, -+ (GSpawnChildSetupFunc)setuid_child_setup_func, -+ si, -+ &out, -+ &err, -+ &status, -+ &error); -+ for (i = 0; i < env->len; i++) { -+ g_free (g_ptr_array_index (env, i)); -+ } -+ g_ptr_array_free (env, TRUE); -+ -+ if (error != NULL) { -+ g_warning ("Unable to get display device for x11 server: %s", error->message); -+ g_error_free (error); -+ } -+ -+ if (status == 0) { -+ if (res && out != NULL) { -+ si->x11_display_device = g_strstrip (out); -+ goto gotit; -+ } -+ } -+ -+ si->x11_display_device = ck_process_stat_get_tty (xorg_stat); -+ -+gotit: - ck_process_stat_free (xorg_stat); - -- /* don't set is-local here - let the daemon do that */ -+ si->is_local = TRUE; -+ si->is_local_is_set = TRUE; - - g_free (si->remote_host_name); - si->remote_host_name = NULL; -@@ -303,6 +356,13 @@ fill_session_info (SessionInfo *si) - - fill_x11_info (si); - -+ if (! si->is_local_is_set) { -+ /* FIXME: how should we set this? */ -+ /* non x11 sessions must be local I guess */ -+ si->is_local = TRUE; -+ si->is_local_is_set = TRUE; -+ } -+ - res = ck_unix_pid_get_login_session_id (si->pid, &si->login_session_id); - if (! res) { - si->login_session_id = NULL; |
