tags 471793 pending thanks attached is a patch which should make it possible for pam logouts to be handled properly, although it preserves the default behavior of previous versions. setting LDM_FORCE_LOGOUT=false in lts.conf should allow pam logouts to work properly. also requires the server having openssh-server 5.1.
=== added file 'K98-force-logout' --- K98-force-logout 1970-01-01 00:00:00 +0000 +++ K98-force-logout 2008-08-20 22:38:10 +0000 @@ -0,0 +1,8 @@ +# handle logout cleanly, so that pam logout sessions are properly registered. +# may only work with version openssh-server 5.1+ +# http://bugs.debian.org/471793 + +if ! boolean_is_true "$LDM_FORCE_LOGOUT"; then + # request the ssh master socket to close + ssh -O exit -S ${LDM_SOCKET} ${LDM_SERVER} +fi === added file 'patches/force-logout.dpatch' --- patches/force-logout.dpatch 1970-01-01 00:00:00 +0000 +++ patches/force-logout.dpatch 2008-08-20 22:33:08 +0000 @@ -0,0 +1,64 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## force-logout.dpatch by Vagrant Cascadian <[EMAIL PROTECTED]> +## +## All lines beginning with `## DP:' are a description of the patch. + +## DP: allow cleaner process for killing X session through setting +## DP: LDM_FORCE_LOGOUT=false. preserve previous behavior by default, +## DP: as this requires openssh-server version 5.1. +## DP: see: http://bugs.debian.org/471793 + [EMAIL PROTECTED]@ +diff -urNad ldm-2.0.6~/screen.d/ldm ldm-2.0.6/screen.d/ldm +--- ldm-2.0.6~/screen.d/ldm 2008-08-20 13:49:00.000000000 -0700 ++++ ldm-2.0.6/screen.d/ldm 2008-08-20 13:49:51.000000000 -0700 +@@ -30,6 +30,10 @@ + fi + fi + ++if [ -z "$LDM_FORCE_LOGOUT" ]; then ++ export LDM_FORCE_LOGOUT=True ++fi ++ + while :; do + # + # Server scalability. If there exists a /usr/share/ltsp/get_hosts file, then +diff -urNad ldm-2.0.6~/src/ldm.c ldm-2.0.6/src/ldm.c +--- ldm-2.0.6~/src/ldm.c 2008-08-20 13:48:53.000000000 -0700 ++++ ldm-2.0.6/src/ldm.c 2008-08-20 13:49:01.000000000 -0700 +@@ -312,10 +312,12 @@ + cmd[i++] = "cleanup"; + } + +- cmd[i++] = ";"; +- cmd[i++] = "kill"; +- cmd[i++] = "-1"; +- cmd[i++] = "$PPID"; ++ if(ldminfo.force_logout) { ++ cmd[i++] = ";"; ++ cmd[i++] = "kill"; ++ cmd[i++] = "-1"; ++ cmd[i++] = "$PPID"; ++ } + cmd[i++] = NULL; + + xsessionpid = ldm_spawn(cmd); +@@ -448,6 +450,7 @@ + scopy(ldminfo.override_port, getenv("SSH_OVERRIDE_PORT")); + ldminfo.directx = ldm_getenv_bool("LDM_DIRECTX"); + ldminfo.autologin = ldm_getenv_bool("LDM_AUTOLOGIN"); ++ ldminfo.force_logout = ldm_getenv_bool("LDM_FORCE_LOGOUT"); + scopy(ldminfo.lang, getenv("LDM_LANGUAGE")); + scopy(ldminfo.session, getenv("LDM_SESSION")); + if (*ldminfo.session == '\0') { +diff -urNad ldm-2.0.6~/src/ldm.h ldm-2.0.6/src/ldm.h +--- ldm-2.0.6~/src/ldm.h 2008-08-20 13:48:53.000000000 -0700 ++++ ldm-2.0.6/src/ldm.h 2008-08-20 13:49:01.000000000 -0700 +@@ -24,6 +24,7 @@ + int sshfd; + int greeterrfd; + int greeterwfd; ++ int force_logout; + pid_t sshpid; + GPid xserverpid; + GPid greeterpid; live well, vagrant -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]