This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch release/4.0.1.x in repository x2goserver. from 7b89eb1 x2goserver-xsession/etc/Xsession: add support for OS RT via /etc/os-rt-release (file needs to be created by upstream first, bug pending.) new b2f033b x2goserver/{bin/x2golistshadowsessions,lib/x2go{dbwrapper.pm,sqlitewrapper.pl}}: backport listshadowsessions* DB functions and unmark them as FIXME entries. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 3 ++ x2goserver/bin/x2golistshadowsessions | 2 -- x2goserver/lib/x2godbwrapper.pm | 61 ++++++++++++++++++++++++++++++++++- x2goserver/lib/x2gosqlitewrapper.pl | 40 +++++++++++++++++++++++ 4 files changed, 103 insertions(+), 3 deletions(-) -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
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 b2f033b72632500218c9d7e689b31c2a53cfcafb Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Oct 26 08:27:14 2017 +0200 x2goserver/{bin/x2golistshadowsessions,lib/x2go{dbwrapper.pm,sqlitewrapper.pl}}: backport listshadowsessions* DB functions and unmark them as FIXME entries. --- debian/changelog | 3 ++ x2goserver/bin/x2golistshadowsessions | 2 -- x2goserver/lib/x2godbwrapper.pm | 61 ++++++++++++++++++++++++++++++++++- x2goserver/lib/x2gosqlitewrapper.pl | 40 +++++++++++++++++++++++ 4 files changed, 103 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 57d615a..4d63a80 100644 --- a/debian/changelog +++ b/debian/changelog @@ -43,6 +43,9 @@ x2goserver (4.0.1.21-0x2go1) UNRELEASED; urgency=medium - x2goserver-xsession/etc/Xsession: add support for OS RT via /etc/os-rt-release (file needs to be created by upstream first, bug pending.) + - x2goserver/{bin/x2golistshadowsessions, + lib/x2go{dbwrapper.pm,sqlitewrapper.pl}}: backport listshadowsessions* + DB functions and unmark them as FIXME entries. * x2goserver.spec: - Add mandatory perl-generators Build-Requires as per https://fedoraproject.org/wiki/Changes/Build_Root_Without_Perl diff --git a/x2goserver/bin/x2golistshadowsessions b/x2goserver/bin/x2golistshadowsessions index 1382799..8a90833 100755 --- a/x2goserver/bin/x2golistshadowsessions +++ b/x2goserver/bin/x2golistshadowsessions @@ -89,12 +89,10 @@ if( ! $serv) my @outp; if($serv eq "--all-servers") { - # FIXME: this also needs a backport to work. @outp=db_listshadowsessions_all(); } else { - # FIXME: this also needs a backport to work. @outp=db_listshadowsessions($serv); } diff --git a/x2goserver/lib/x2godbwrapper.pm b/x2goserver/lib/x2godbwrapper.pm index e70bdad..7978e76 100644 --- a/x2goserver/lib/x2godbwrapper.pm +++ b/x2goserver/lib/x2godbwrapper.pm @@ -88,7 +88,7 @@ use base 'Exporter'; our @EXPORT=('db_listsessions','db_listsessions_all', 'db_getservers', 'db_getagent', 'db_resume', 'db_changestatus', 'db_getstatus', 'db_getdisplays', 'db_insertsession', 'db_getports', 'db_insertport', 'db_rmport', 'db_createsession', 'db_insertmount', 'db_getmounts', 'db_deletemount', 'db_getdisplay', 'dbsys_getmounts', 'dbsys_listsessionsroot', - 'dbsys_listsessionsroot_all', 'dbsys_rmsessionsroot', 'dbsys_deletemounts'); + 'dbsys_listsessionsroot_all', 'dbsys_rmsessionsroot', 'dbsys_deletemounts', 'db_listshadowsessions', 'db_listshadowsessions_all'); sub dbsys_rmsessionsroot { @@ -674,3 +674,62 @@ sub db_listsessions_all return split("\n",`$x2go_lib_path/x2gosqlitewrapper listsessions_all`); } } + +sub db_listshadowsessions +{ + my $server=shift or die "argument \"server\" missed"; + if($backend eq 'postgres') + { + my @sessions; + my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_; + my $sth=$dbh->prepare("select agent_pid, session_id, display, server, status, + to_char(init_time,'YYYY-MM-DD\"T\"HH24:MI:SS'), cookie, client, gr_port, + sound_port, to_char( last_time, 'YYYY-MM-DD\"T\"HH24:MI:SS'), uname, + to_char(now()- init_time,'SSSS'), fs_port from sessions_view + where status !='F' and server='$server' and + (session_id like '%XSHAD%') order by status desc"); + $sth->execute() or die; + my @data; + my $i=0; + while (@data = $sth->fetchrow_array) + { + @sessions[$i++]=join('|',@data); + } + $sth->finish(); + undef $dbh; + return @sessions; + } + if ($backend eq 'sqlite') + { + return split("\n",`$x2go_lib_path/x2gosqlitewrapper listshadowsessions $server`); + } +} + +sub db_listshadowsessions_all +{ + if($backend eq 'postgres') + { + my @sessions; + my $dbh=DBI->connect("dbi:Pg:dbname=$db;host=$host;port=$port;sslmode=$sslmode", "$dbuser", "$dbpass",{AutoCommit => 1}) or die $_; + my $sth=$dbh->prepare("select agent_pid, session_id, display, server, status, + to_char(init_time,'YYYY-MM-DD\"T\"HH24:MI:SS'), cookie, client, gr_port, + sound_port, to_char( last_time, 'YYYY-MM-DD\"T\"HH24:MI:SS'), uname, + to_char(now()- init_time,'SSSS'), fs_port from sessions_view + where status !='F' and + (session_id is like '%XSHAD%') order by status desc"); + $sth->execute()or die; + my @data; + my $i=0; + while (@data = $sth->fetchrow_array) + { + @sessions[$i++]=join('|',@data); + } + $sth->finish(); + undef $dbh; + return @sessions; + } + if ($backend eq 'sqlite') + { + return split("\n",`$x2go_lib_path/x2gosqlitewrapper listshadowsessions_all`); + } +} diff --git a/x2goserver/lib/x2gosqlitewrapper.pl b/x2goserver/lib/x2gosqlitewrapper.pl index f8fd046..4604c6e 100755 --- a/x2goserver/lib/x2gosqlitewrapper.pl +++ b/x2goserver/lib/x2gosqlitewrapper.pl @@ -509,6 +509,46 @@ elsif($cmd eq "listsessions_all") } fetchrow_printall_array($sth); } + +elsif($cmd eq "listshadowsessions") +{ + my $server=shift or die "argument \"server\" missed"; + my @strings; + my $sth=$dbh->prepare("select agent_pid, session_id, display, server, status, + strftime('%Y-%m-%dT%H:%M:%S',init_time), + cookie,client,gr_port,sound_port, + strftime('%Y-%m-%dT%H:%M:%S',last_time), + uname, + strftime('%s','now','localtime') - strftime('%s',init_time),fs_port from sessions + where status !='F' and server=? and uname=? + and (session_id like '%XSHAD%') order by status desc"); + $sth->execute($server, $realuser); + if ($sth->err()) + { + syslog('error', "listshadowsessions (SQLite3 session db backend) failed with exitcode: $sth->err()"); + die(); + } + fetchrow_printall_array($sth); +} + +elsif($cmd eq "listshadowsessions_all") +{ + my @strings; + my $sth=$dbh->prepare("select agent_pid, session_id, display, server, status, + strftime('%Y-%m-%dT%H:%M:%S',init_time), + cookie,client,gr_port,sound_port, + strftime('%Y-%m-%dT%H:%M:%S',last_time), + uname, + strftime('%s','now','localtime') - strftime('%s',init_time),fs_port from sessions + where status !='F' and uname=? and (session_id like '%XSHAD%') order by status desc"); + $sth->execute($realuser); + if ($sth->err()) + { + syslog('error', "listshadowsessions_all (SQLite3 session db backend) failed with exitcode: $sth->err()"); + die(); + } + fetchrow_printall_array($sth); +} else { print "unknown command $cmd\n"; -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git