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