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 13227f9 Improve the comments in x2goagent.options new a879af8 Set default value for clipboard to "both" in x2gostartagent and x2goresume-session. new 513206b Clean user SSHD process if connection between server and client lost. This should fix error "Global request tcpip-forward failed". The 2 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/x2golistsessions | 3 ++ x2goserver/bin/x2goresume-session | 6 ++++ x2goserver/bin/x2gostartagent | 5 +++ .../{sbin/x2goshowblocks => lib/x2gormforward} | 37 +++++++++++++------- x2goserver/sbin/x2gocleansessions | 2 ++ 6 files changed, 43 insertions(+), 13 deletions(-) copy x2goserver/{sbin/x2goshowblocks => lib/x2gormforward} (67%) -- Alioth's /srv/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 a879af8842d2cb4b0521b4c2e1afe5f684b9a853 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Tue Jul 22 11:55:36 2014 +0200 Set default value for clipboard to "both" in x2gostartagent and x2goresume-session. --- debian/changelog | 1 + x2goserver/bin/x2goresume-session | 2 ++ x2goserver/bin/x2gostartagent | 2 ++ 3 files changed, 5 insertions(+) diff --git a/debian/changelog b/debian/changelog index 498a41a..72deb4c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -69,6 +69,7 @@ x2goserver (4.0.1.16-0x2go1) UNRELEASED; urgency=low - Move session file to /tmp/.x2go-$USER. (Fixes: #523). - Fix x2gostartagent failures if kbd is not "auto". Remove comma at end of options file. + - Set default value for clipboard to "both" in x2gostartagent and x2goresume-session. -- Mike DePaulo <mikedep333@gmail.com> Thu, 23 Apr 2014 17:49:00 -0500 diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session index 8f91aef..c06eea7 100755 --- a/x2goserver/bin/x2goresume-session +++ b/x2goserver/bin/x2goresume-session @@ -206,6 +206,8 @@ fi if [ -n "$X2GO_CLIPBOARD" ] && [ -z "`echo $X2GO_CLIPBOARD | sed -re 's/(0|none|client|server|both|1)//'`" ]; then clipboard="clipboard=$X2GO_CLIPBOARD" +else + clipboard="clipboard=both" fi NEWOPTIONS=`echo "$OPTIONS" | sed -e "s/$LSTR/link=$X2GO_LINK/"\ diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent index f94d6c7..7293a0e 100755 --- a/x2goserver/bin/x2gostartagent +++ b/x2goserver/bin/x2gostartagent @@ -271,6 +271,8 @@ fi if [ -n "$X2GO_CLIPBOARD" ] && [ -z "`echo $X2GO_CLIPBOARD | sed -re 's/(0|none|client|server|both|1)//'`" ]; then clipboard=",clipboard=$X2GO_CLIPBOARD" +else + clipboard=",clipboard=both" fi if [ "$X2GO_SET_KBD" == "0" ] || [ "$X2GO_KBD_TYPE" == "auto" ];then -- Alioth's /srv/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 513206befc64d1f2618d19d4afe7cfdb9f332f77 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Tue Jul 22 13:53:02 2014 +0200 Clean user SSHD process if connection between server and client lost. This should fix error "Global request tcpip-forward failed". --- debian/changelog | 2 ++ x2goserver/bin/x2golistsessions | 3 ++ x2goserver/bin/x2goresume-session | 4 +++ x2goserver/bin/x2gostartagent | 3 ++ x2goserver/lib/x2gormforward | 59 +++++++++++++++++++++++++++++++++++++ x2goserver/sbin/x2gocleansessions | 2 ++ 6 files changed, 73 insertions(+) diff --git a/debian/changelog b/debian/changelog index 72deb4c..b58bcad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -70,6 +70,8 @@ x2goserver (4.0.1.16-0x2go1) UNRELEASED; urgency=low - Fix x2gostartagent failures if kbd is not "auto". Remove comma at end of options file. - Set default value for clipboard to "both" in x2gostartagent and x2goresume-session. + - Clean user SSHD process if connection between server and client lost. This should fix + error "Global request tcpip-forward failed". -- Mike DePaulo <mikedep333@gmail.com> Thu, 23 Apr 2014 17:49:00 -0500 diff --git a/x2goserver/bin/x2golistsessions b/x2goserver/bin/x2golistsessions index 93d4c07..efbf8f2 100755 --- a/x2goserver/bin/x2golistsessions +++ b/x2goserver/bin/x2golistsessions @@ -31,6 +31,8 @@ use x2godbwrapper; use x2gologlevel; +use X2Go::Utils qw( system_capture_stdout_output is_true ); +my $x2go_lib_path = system_capture_stdout_output("x2gopath", "libexec"); openlog($0,'cons,pid','user'); setlogmask( LOG_UPTO(x2gologlevel()) ); @@ -123,6 +125,7 @@ for (my $i=0;$i<@outp;$i++) db_changestatus( 'S', @sinfo[1]); @outp[$i] =~ s/\|R\|/\|S\|/; system("x2goumount-session", "@sinfo[1]"); + system("$x2go_lib_path/x2gormforward", "@sinfo[1]"); } } elsif (@sinfo[4]eq 'S') diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session index c06eea7..d3ee51f 100755 --- a/x2goserver/bin/x2goresume-session +++ b/x2goserver/bin/x2goresume-session @@ -89,6 +89,9 @@ do STATE=`$X2GO_LIB_PATH/x2gogetagentstate "$SESSION_NAME"` done +$X2GO_LIB_PATH/x2gormforward "$SESSION_NAME" + + NX_XINERAMA_CONF="$X2GO_ROOT/C-$SESSION_NAME/xinerama.conf" if [ -e "$NX_XINERAMA_CONF" ] then @@ -255,6 +258,7 @@ if kill -HUP $X2GO_AGENT_PID &>/dev/null; then # run x2goserver-extensions for post-resume x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" post-resume || true + grep PPid /proc/$PPID/status > $X2GO_ROOT/C-$SESSION_NAME/sshd.pid else err_msg="ERROR: failed to resume session with ID $SESSION_NAME" echo "$err_msg" 1>&2 diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent index 7293a0e..f9bd600 100755 --- a/x2goserver/bin/x2gostartagent +++ b/x2goserver/bin/x2gostartagent @@ -65,6 +65,7 @@ X2GO_FULLSCREEN=0 XAUTHORITY=${XAUTHORITY:-"$HOME/.Xauthority"} + if [ "$X2GO_STYPE" == "S" ]; then SHADOW_MODE=`echo $X2GO_CMD |awk '{split($0,a,"XSHAD"); print a[1]}'` @@ -251,6 +252,8 @@ if [ ! -d "$X2GO_ROOT/ssh" ]; then mkdir "$X2GO_ROOT/ssh" fi +grep PPid /proc/$PPID/status > ${SESSION_DIR}/sshd.pid + X2GO_COOKIE=`mcookie` diff --git a/x2goserver/lib/x2gormforward b/x2goserver/lib/x2gormforward new file mode 100755 index 0000000..b15e38f --- /dev/null +++ b/x2goserver/lib/x2gormforward @@ -0,0 +1,59 @@ +#!/usr/bin/perl + +# Copyright (C) 2007-2014 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-2014 Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de> +# Copyright (C) 2007-2014 Heinz-Markus Graesing <heinz-m.graesing@obviously-nice.de> + +use strict; +use Sys::Syslog qw( :standard :macros ); + +use X2Go::Log qw(loglevel); + +openlog($0,'cons,pid','user'); +setlogmask( LOG_UPTO(loglevel()) ); + +my $session=shift or die; + +my $pidfile="/tmp/.x2go-".getpwuid($>)."/C-$session/sshd.pid"; +if( ! -e $pidfile) +{ + #pid file not exists, forwarding already removed + exit 0; +} + +open(F,"<$pidfile"); +my $output=<F>; +close(F); + +unlink($pidfile); + +my @words=split(" ",$output); +my $process=@words[@words-1]; + +$output=`ps ax|grep $process`; + +if($output =~ m/sshd/) +{ + #terminate process + syslog('debug', "Terminating SSHD process: $process"); + kill 'TERM', $process; +} + +# closing syslog +closelog; diff --git a/x2goserver/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions index 7fc4172..fe39cf8 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -214,6 +214,8 @@ elsif ($pid == 0 ) syslog('debug', "@sinfo[1] is suspended, changing status from @sinfo[4] to S"); syslog('debug', "@sinfo[1]: unmounting all shares"); system("su", "@sinfo[11]", "-c", "export HOSTNAME && x2goumount-session @sinfo[1]"); + #remove port forwarding + system("su", "@sinfo[11]", "-c", "$x2go_lib_path/x2gormforward @sinfo[1]"); } } if (@sinfo[4] eq 'S') -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git