[X2Go-Commits] [x2goserver] 03/08: x2goserver/: backport x2golistshadowsessions.

git-admin at x2go.org git-admin at x2go.org
Wed Oct 11 08:17:34 CEST 2017


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch release/4.0.1.x
in repository x2goserver.

commit a3ae80e14483ba551a8b654e24d5031c6ba78942
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Wed Oct 11 07:25:48 2017 +0200

    x2goserver/: backport x2golistshadowsessions.
---
 debian/changelog                                   |  1 +
 x2goserver/bin/x2golistshadowsessions              | 87 ++++++++++++++++++++++
 x2goserver/man/man8/x2golistshadowsessions.8       | 55 ++++++++++++++
 x2goserver/share/x2gofeature.d/x2goserver.features |  1 +
 4 files changed, 144 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 69c22ea..6960bca 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -103,6 +103,7 @@ x2goserver (4.0.1.21-0x2go1) UNRELEASED; urgency=medium
       Arctica's nx-libs and its new Xinerama feature. Fixes: #1153.
     - Make x2goruncommand aware of the LXQt desktop shell.
     - x2goserver/x2gosqlitewrapper.c: fix implicit declaration of execv().
+    - x2goserver/: backport x2golistshadowsessions.
 
  -- X2Go Release Manager <git-admin at x2go.org>  Sun, 20 Nov 2016 12:54:13 +0100
 
diff --git a/x2goserver/bin/x2golistshadowsessions b/x2goserver/bin/x2golistshadowsessions
new file mode 100755
index 0000000..baba045
--- /dev/null
+++ b/x2goserver/bin/x2golistshadowsessions
@@ -0,0 +1,87 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2007-2015 X2Go Project - http://wiki.x2go.org
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the
+# Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Copyright (C) 2007-2015 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
+# Copyright (C) 2007-2015 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
+
+use strict;
+use Sys::Hostname;
+use Sys::Syslog qw( :standard :macros );
+
+use lib `x2gopath lib`;
+use x2godbwrapper; 
+use x2gologlevel;
+
+my $x2go_lib_path = `x2gopath libexec`;
+
+openlog($0,'cons,pid','user');
+setlogmask( LOG_UPTO(x2gologlevel()) );
+
+if ( @ARGV ) {
+	syslog('info', "x2golistshadowsessions has been called with options: @ARGV");
+} else {
+	# hiding normal x2golistshadowsessions calls into debug loglevel
+	syslog('debug', "x2golistshadowsessions has been called with no option");
+}
+
+
+my $serv=shift;
+if( ! $serv)
+{
+	$serv=hostname;
+}
+
+my @outp;
+if($serv eq "--all-servers")
+{
+	@outp=db_listshadowsessions_all();
+}
+else
+{
+	@outp=db_listshadowsessions($serv);
+}
+
+for (my $i=0;$i<@outp;$i++)
+{
+	@outp[$i] =~ s/ //g;
+	@outp[$i] =~ s/\*/ /g;
+	my @sinfo=split('\\|',"@outp[$i]");
+	if (@sinfo[4]eq 'F')
+	{
+		print "@outp[$i]\n";
+	}
+	else
+	{ 
+		if (@sinfo[4]eq 'R')
+		{
+			my $shadow_user = @sinfo[1];
+			$shadow_user =~ s/.*XSHAD(.*)XSHADPP.*/$1/;
+			if(session_is_suspended(@sinfo[1], $shadow_user))
+			{
+				db_changestatus( 'S', @sinfo[1] );
+				@outp[$i] =~ s/\|R\|/\|S\|/;
+				system("x2goumount-session","@sinfo[1]");
+			}
+		}
+		print "@outp[$i]\n";
+	}
+}
+
+# closing syslog 
+closelog;
diff --git a/x2goserver/man/man8/x2golistshadowsessions.8 b/x2goserver/man/man8/x2golistshadowsessions.8
new file mode 100644
index 0000000..5581d8b
--- /dev/null
+++ b/x2goserver/man/man8/x2golistshadowsessions.8
@@ -0,0 +1,55 @@
+'\" -*- coding: utf-8 -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH x2golistshadowsessions 8 "Jun 2014" "Version 4.1.0.0-preview" "X2Go Server Tool"
+.SH NAME
+x2golistshadowsessions \- List Available X2Go Shadow Sessions for User
+.SH SYNOPSIS
+'nh
+.fi
+.ad l
+x2golistshadowsessions [\fI<server_hostname>\fR|\fI--all-servers\fR]
+
+.SH DESCRIPTION
+\fBx2golistshadowsessions\fR returns a list of running or suspended X2Go shadow sessions
+(sessions that provide the X2Go Desktop Sharing feature) for X2Go server \fI<server_hostname>\fR.
+If no server hostname is given at the command line, the shadow session list query runs for the local system.
+.PP
+\fBx2golistshadowsessions\fR is run with normal user privileges and it is used by X2Go clients to render
+a list of available X2Go shadow sessions.
+.SH X2GO CLUSTER MODE
+If \fBx2golistshadowsessions\fR is executed with the \fI--all-servers\fR option then the central database
+of your X2Go cluster is queried for running/suspended shadow sessions belonging to the user executing this command.
+These sessions may be active on any of the X2Go servers within your cluster.
+.SH RETURN VALUES
+A line-by-line list of available X2Go sessions. Each line consists of several session attribute fields separated by the pipe
+symbol (,,|'').
+.PP
+The meaning of the session attributes of each output line are shown below:
+
+  field 01: \fI<agent_pid>\fR
+  field 02: \fI<session_id>\fR
+  field 03: \fI<port>\fR
+  field 04: \fI<host>\fR
+  field 05: \fI<state>\fR
+  field 06: \fI<init_time>\fR
+  field 07: \fI<session_cookie>\fR
+  field 08: \fI<client_ip>\fR
+  field 09: \fI<gr_port>\fR
+  field 10: \fI<snd_port>\fR
+  field 11: \fI<last_time>\fR
+  field 12: \fI<user>\fR
+  field 13: \fI<age_in_secs>\fR
+  field 14: \fI<sshfs_port>\fR
+
+.PP
+As exitcode \fBx2golistshadowsessions\fR always returns 0.
+.SH SEE ALSO
+x2golistsessions(8), x2golistdesktops(8), x2goresume-session(8), x2gosuspend-session(8), x2goterminate-session(8)
+.SH AUTHOR
+This manual has been written by Mike Gabriel <mike.gabriel at das-netzwerkteam.de> for the X2Go project
+(http://www.x2go.org).
diff --git a/x2goserver/share/x2gofeature.d/x2goserver.features b/x2goserver/share/x2gofeature.d/x2goserver.features
index 87c1a01..d8e498f 100755
--- a/x2goserver/share/x2gofeature.d/x2goserver.features
+++ b/x2goserver/share/x2gofeature.d/x2goserver.features
@@ -36,6 +36,7 @@ case "$X2GO_FEATURE" in
 	"X2GO_PUBLISHED_APPLICATIONS") echo "ok"; exit 0;;
 	"X2GO_SERVERSIDE_DESKTOPCOMMANDS") echo "ok"; exit 0;;
 	"X2GO_SET_KEYBOARD") echo "ok"; exit 0;;
+	"X2GO_LIST_SHADOWSESSIONS") echo "ok"; exit 0;;
 	"X2GO_MOUNT_UNCPATHS") echo "ok"; exit 0;;
 	"X2GO_CLIPBOARD_MODES") echo "ok"; exit 0;;
 	*) exit -1;;

--
Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list