[X2Go-Commits] [x2goserver] 01/03: Properly clean up shadow sessions for the session database.
git-admin at x2go.org
git-admin at x2go.org
Thu Feb 5 12:06:10 CET 2015
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository x2goserver.
commit 335a8efb18f7baad1333148b2bcef64ea2b1550a
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Thu Feb 5 11:48:38 2015 +0100
Properly clean up shadow sessions for the session database.
---
debian/changelog | 1 +
x2goserver/sbin/x2gocleansessions | 16 +++++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/debian/changelog b/debian/changelog
index ac1bef1..5ff2927 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -66,6 +66,7 @@ x2goserver (4.1.0.0-0x2go1.1) UNRELEASED; urgency=low
- Make it possible to change the state of shadow sessions.
- Provide --debug option for x2gocleansession that allows running
x2gocleansessions in foreground (and in debug mode).
+ - Properly clean up shadow sessions for the session database.
* debian/control:
+ Package X2Go::Log in separate package: libx2go-log-perl.
+ Package X2Go::Server::DB in separate package: libx2go-server-db-perl.
diff --git a/x2goserver/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions
index 4cfe224..83e57a1 100755
--- a/x2goserver/sbin/x2gocleansessions
+++ b/x2goserver/sbin/x2gocleansessions
@@ -149,6 +149,9 @@ elsif ($pid == 0 )
my %remembered_sessions_since = ();
my $last_reniced = 0;
+ my $user;
+ my $effective_user;
+
while(sleep 2)
{
my $outp=system_capture_stdout_output("$x2go_lib_path/x2golistsessions_sql", "$serv");
@@ -214,7 +217,18 @@ elsif ($pid == 0 )
}
elsif (! check_pid (@sinfo[0], at sinfo[1], at sinfo[12]))
{
- system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gochangestatus 'F' @sinfo[1]");
+ $user = @sinfo[11];
+
+ # For shadow sessions we need to su to the user who provided the shared desktop (not the one who
+ # requested the desktop sharing)...
+ if ( @sinfo[1] =~ m/$user-[0-9]{2,}-[0-9]{10,}_stS(0|1)XSHAD.*XSHAD.*/ )
+ {
+ $effective_user = @sinfo[1];
+ $effective_user =~ s/$user\-[0-9]{2,}\-[0-9]{10}_stS[0-1]XSHAD(.*)XSHAD.*/$1/;
+ $user = $effective_user;
+ }
+
+ system("su", "$user", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gochangestatus 'F' @sinfo[1]");
my $display = @sinfo[2];
if (-S "/tmp/.X11-unix/X$display") {
# remove the NX-X11 socket file (we don't know how the agent disappeared,
--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
More information about the x2go-commits
mailing list