[X2Go-Commits] [python-x2go] 02/02: Handle socket errors on the reverse port forwarding tunnels more gracefully.

git-admin at x2go.org git-admin at x2go.org
Fri Oct 3 13:03:15 CEST 2014


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 at 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


More information about the x2go-commits mailing list