This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository python-x2go. from f6b226d typo fix for last commit new 05643fc Use session_name, not session_info object's __str__() method to obtain session name (in X2GoTelekinesis). new e5a44d5 Handle socket errors on the reverse port forwarding tunnels more gracefully. 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 | 4 ++++ x2go/rforward.py | 23 +++++++++++++---------- x2go/telekinesis.py | 14 +++++++------- 3 files changed, 24 insertions(+), 17 deletions(-) -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository python-x2go. commit 05643fcde744c186563177adf1288158dd49af95 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Fri Oct 3 13:02:37 2014 +0200 Use session_name, not session_info object's __str__() method to obtain session name (in X2GoTelekinesis). --- debian/changelog | 2 ++ x2go/telekinesis.py | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index c82ca2d..29b29b5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -94,6 +94,8 @@ python-x2go (0.5.0.0-0x2go1) UNRELEASED; urgency=low " (2)", ... to the session profile name). (Fixes: #500). - Support server-side Telekinesis versions that ship their own (teki-)sftpserver. + - Use session_name, not session_info object's __str__() method to obtain + session name (in X2GoTelekinesis). * debian/control: + Add dependencies: python-requests, python-simplejson. * python-x2go.spec: diff --git a/x2go/telekinesis.py b/x2go/telekinesis.py index 16b6ea2..bf93f0b 100644 --- a/x2go/telekinesis.py +++ b/x2go/telekinesis.py @@ -171,7 +171,7 @@ class X2GoTelekinesisClient(threading.Thread): self.fw_ctrl_tunnel = None if self.telekinesis_sshfs is not None: - telekinesis_sshfs_command = ['fusermount', '-u', '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info), ] + telekinesis_sshfs_command = ['fusermount', '-u', '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_name), ] self.logger('Umounting SSHFS mount for Telekinesis via forking a threaded subprocess: %s' % " ".join(telekinesis_sshfs_command), loglevel=log.loglevel_DEBUG) self.telekinesis_sshfs_umount = subprocess.Popen(telekinesis_sshfs_command, env=self.TEKICLIENT_ENV, @@ -283,7 +283,7 @@ class X2GoTelekinesisClient(threading.Thread): """ cmd_line = [ self.TEKICLIENT_CMD, ] - _tekiclient_args = " ".join(self.TEKICLIENT_ARGS).format(sid=self.session_info).split(' ') + _tekiclient_args = " ".join(self.TEKICLIENT_ARGS).format(sid=self.session_name).split(' ') cmd_line.extend(_tekiclient_args) return cmd_line @@ -321,7 +321,7 @@ class X2GoTelekinesisClient(threading.Thread): self.tekiclient_datalog_stdout = open('%s/%s' % (self.session_info.local_container, self.tekiclient_datalog, ), 'a') self.tekiclient_datalog_stderr = open('%s/%s' % (self.session_info.local_container, self.tekiclient_datalog, ), 'a') try: - os.makedirs(os.path.normpath('/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info))) + os.makedirs(os.path.normpath('/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_name))) except OSError, e: if e.errno == 17: # file exists @@ -334,7 +334,7 @@ class X2GoTelekinesisClient(threading.Thread): '-o', 'follow_symlinks', '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port), '127.0.0.1:/', - '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info), + '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_name), ] else: # very first Telekinesis Server implementation used OpenSSH's sftp-server @@ -343,8 +343,8 @@ class X2GoTelekinesisClient(threading.Thread): '-o', 'compression=no', '-o', 'follow_symlinks', '-o', 'directport={tekidata_port}'.format(tekidata_port=self.local_tekidata_port), - '127.0.0.1:{remote_home}/.x2go/C-{sid}/telekinesis/remote/'.format(remote_home=self.session_instance.get_remote_home(), sid=self.session_info), - '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_info), + '127.0.0.1:{remote_home}/.x2go/C-{sid}/telekinesis/remote/'.format(remote_home=self.session_instance.get_remote_home(), sid=self.session_name), + '/tmp/.x2go-{local_user}/telekinesis/S-{sid}/'.format(local_user=_CURRENT_LOCAL_USER, sid=self.session_name), ] self.logger('forking threaded subprocess: %s' % " ".join(telekinesis_sshfs_command), loglevel=log.loglevel_DEBUG) self.telekinesis_sshfs = subprocess.Popen(telekinesis_sshfs_command, @@ -387,7 +387,7 @@ class X2GoTelekinesisClient(threading.Thread): gevent.sleep(.5) else: - self.logger('Aborting Telekinesis client startup for session %s, because the Telekinesis data connection failed to be established.' % (self.session_info,), loglevel=log.loglevel_WARN) + self.logger('Aborting Telekinesis client startup for session %s, because the Telekinesis data connection failed to be established.' % (self.session_name,), loglevel=log.loglevel_WARN) return self.tekiclient, bool(self.tekiclient) and (self.fw_ctrl_tunnel and self.fw_ctrl_tunnel.is_active) -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository python-x2go. commit e5a44d5c182727e4ebfc0bd91ff9458e969e6798 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Fri Oct 3 13:03:09 2014 +0200 Handle socket errors on the reverse port forwarding tunnels more gracefully. --- debian/changelog | 2 ++ x2go/rforward.py | 23 +++++++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index 29b29b5..b082764 100644 --- a/debian/changelog +++ b/debian/changelog @@ -96,6 +96,8 @@ python-x2go (0.5.0.0-0x2go1) UNRELEASED; urgency=low (teki-)sftpserver. - Use session_name, not session_info object's __str__() method to obtain session name (in X2GoTelekinesis). + - Handle socket errors on the reverse port forwarding tunnels more + gracefully. * debian/control: + Add dependencies: python-requests, python-simplejson. * python-x2go.spec: diff --git a/x2go/rforward.py b/x2go/rforward.py index 5246485..d3bd6c6 100644 --- a/x2go/rforward.py +++ b/x2go/rforward.py @@ -314,16 +314,19 @@ def x2go_rev_forward_channel_handler(chan=None, addr='', port=0, parent_thread=N loglevel=log.loglevel_INFO) while parent_thread._accept_channels: r, w, x = select.select([fw_socket, chan], [], []) - if fw_socket in r: - data = fw_socket.recv(1024) - if len(data) == 0: - break - chan.send(data) - if chan in r: - data = chan.recv(1024) - if len(data) == 0: - break - fw_socket.send(data) + try: + if fw_socket in r: + data = fw_socket.recv(1024) + if len(data) == 0: + break + chan.send(data) + if chan in r: + data = chan.recv(1024) + if len(data) == 0: + break + fw_socket.send(data) + except socket.error, e: + logger('Reverse tunnel %s encoutered socket error: %s' % (chan, e.errno), loglevel=log.loglevel_WARNING) chan.close() fw_socket.close() -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/python-x2go.git