[X2Go-Commits] x2goserver.git - release/4.0.1.x (branch) updated: 4.0.1.2-1-g95ed41f

X2Go dev team git-admin at x2go.org
Sat Jun 22 14:31:59 CEST 2013


The branch, release/4.0.1.x has been updated
       via  95ed41f7d7cf129ca635fcd78959b9f41db2244c (commit)
      from  02ce6b450e39d07617d95e6a334573f3dd31ee8d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 95ed41f7d7cf129ca635fcd78959b9f41db2244c
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Sat Jun 22 14:31:13 2013 +0200

    Improve session status management in x2gocleansessions.
    
    Conflicts (resolved by Mike Gabriel)
    	debian/changelog

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog                  |    7 +++++++
 x2goserver/sbin/x2gocleansessions |   26 +++++++++++++++-----------
 2 files changed, 22 insertions(+), 11 deletions(-)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 2798097..a1e4b4b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+x2goserver (4.0.1.3-0~x2go1) UNRELEASED; urgency=low
+
+  * New upstream version (4.0.1.3):
+    - Improve session status management in x2gocleansessions.
+
+ -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Sat, 22 Jun 2013 14:30:46 +0200
+
 x2goserver (4.0.1.2-0~x2go1) unstable; urgency=low
 
   * New upstream version (4.0.1.2):
diff --git a/x2goserver/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions
index 2a69281..e2a784a 100755
--- a/x2goserver/sbin/x2gocleansessions
+++ b/x2goserver/sbin/x2gocleansessions
@@ -95,13 +95,12 @@ sub catch_term
 }
 
 my $uname;
-#my $serv=$ENV{'HOSTNAME'};
 my $serv = hostname;
 my $pid = fork();
 if (not defined $pid) 
 {
 	print "resources not avilable.\n";
-} 
+}
 elsif ($pid != 0) 
 {
 	open (F,">/var/run/x2goserver.pid");
@@ -116,7 +115,8 @@ elsif ($pid == 0 )
 	$SIG{TERM}=\&catch_term;
 	$SIG{CHLD} = sub { wait };
 
-	my %remembered_sessions = ();
+	my %remembered_sessions_status = ();
+	my %remembered_sessions_since = ();
 
 	while(sleep 2)
 	{
@@ -124,11 +124,12 @@ elsif ($pid == 0 )
 		my @outp=split("\n","$outp");
 
 		# forget earlier remembered blocked sessions
-		while ( my ($session, $remembered_time) = each(%remembered_sessions) )
+		while ( my ($session, $remembered_since) = each(%remembered_sessions_since) )
 		{
 			if (! join(',', @outp)=~m/$session/)
 			{
-				delete $remembered_sessions{$session};
+				delete $remembered_sessions_status{$session};
+				delete $remembered_sessions_since{$session};
 			}
 		}
 
@@ -137,22 +138,25 @@ elsif ($pid == 0 )
 
 			my @sinfo=split('\\|',"@outp[$i]");
 
-			if (defined $remembered_sessions{ @sinfo[1] })
+			if (defined $remembered_sessions_since{ @sinfo[1] } && ($remembered_sessions_status{ @sinfo[1] } =~m/@sinfo[4]/ ))
 			{
-				$remembered_sessions{ @sinfo[1] } += 2;
+				$remembered_sessions_since{ @sinfo[1] } += 2;
 			} else {
-				$remembered_sessions{ @sinfo[1] } = 0;
+				$remembered_sessions_status{ @sinfo[1] } = @sinfo[4];
+				$remembered_sessions_since{ @sinfo[1] } = 0;
 			}
 
+			#print @sinfo[1], ': ', $remembered_sessions_since{@sinfo[1]},' ',$remembered_sessions_status{@sinfo[1]},"\n";
+
 			if (@sinfo[4]eq 'F')
 			{
 				syslog('debug', "@sinfo[1] is blocked");
-				if ($remembered_sessions{@sinfo[1]} ge 20)
+				if ($remembered_sessions_since{@sinfo[1]} ge 20)
 				{
 					# send SIGKILL to dangling X-server processes
 					syslog('warning', "@sinfo[1]: found stale X-server process (@sinfo[0]), sending SIGKILL");
 					qw(kill -9 @sinfo[0]);
-					delete $remembered_sessions{@sinfo[1]};
+					delete $remembered_sessions_since{@sinfo[1]};
 				}
 				syslog('debug', "@sinfo[1]: unmounting all shares");
 				system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount-session @sinfo[1]\" 2> /dev/null");
@@ -167,7 +171,7 @@ elsif ($pid == 0 )
 			}
 			else
 			{ 
-				if ( (@sinfo[4] eq 'R') && ( $remembered_sessions{ @sinfo[1] } ge 2 ))
+				if ( (@sinfo[4] eq 'R') && ( $remembered_sessions_since{ @sinfo[1] } ge 2 ))
 				{
 					if (is_suspended(@sinfo[1], at sinfo[11]))
 					{


hooks/post-receive
-- 
x2goserver.git (X2Go Server)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "x2goserver.git" (X2Go Server).




More information about the x2go-commits mailing list