diff options
author | aleherbau | 2011-05-30 14:02:40 +0000 |
---|---|---|
committer | aleherbau | 2011-05-30 14:02:40 +0000 |
commit | 7fab0fe75c0e8c52944ff71f905beae0ba12888f (patch) | |
tree | b8d343c0f2f57359e35d1b5bbe631156f58e1559 /python/src/tcf/channel | |
parent | 9878b6c85ea6e495bfb4e984df9cd79a31f7f66b (diff) | |
download | org.eclipse.tcf-7fab0fe75c0e8c52944ff71f905beae0ba12888f.tar.gz org.eclipse.tcf-7fab0fe75c0e8c52944ff71f905beae0ba12888f.tar.xz org.eclipse.tcf-7fab0fe75c0e8c52944ff71f905beae0ba12888f.zip |
TCF Python: Fix lockup if connection refused
Diffstat (limited to 'python/src/tcf/channel')
-rw-r--r-- | python/src/tcf/channel/ChannelTCP.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/python/src/tcf/channel/ChannelTCP.py b/python/src/tcf/channel/ChannelTCP.py index ae020237b..7126e9554 100644 --- a/python/src/tcf/channel/ChannelTCP.py +++ b/python/src/tcf/channel/ChannelTCP.py @@ -23,12 +23,15 @@ class ChannelTCP(StreamChannel): channel = self class CreateSocket(object): def __call__(self): - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect((host, port)) - sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) - sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) - channel.socket = sock - channel._onSocketConnected(None) + try: + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.connect((host, port)) + sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) + channel.socket = sock + channel._onSocketConnected(None) + except Exception as x: + channel._onSocketConnected(x) protocol.invokeLater(CreateSocket()) def _onSocketConnected(self, x): |