Loading ccnode/jobs.py +13 −3 Original line number Diff line number Diff line Loading @@ -981,7 +981,7 @@ class TCPTunnelJob(BaseJob): except socket.timeout: pass if self._sock_server is None: return # job cancelled break # job cancelled ## connect to the endpoint timeout = 15 # FIXME must be argument Loading @@ -1000,7 +1000,7 @@ class TCPTunnelJob(BaseJob): self._log.append('socket error (connection refused ?)') time.sleep(retry_interval) if self._cancelled: return break if not connected: continue Loading @@ -1014,11 +1014,11 @@ class TCPTunnelJob(BaseJob): # forward data until a connection is closed buf_server = '' buf_client = '' empty_buf = 0 connected = True while not self._cancelled and connected: # wait for events on both sockets poll = poller.poll() ## process events for read/write operations only for fd, events in poll: # events are for server socket if fd == self._sock_server.fileno(): Loading @@ -1029,6 +1029,10 @@ class TCPTunnelJob(BaseJob): read = self._sock_server.recv(4096) except socket.error: connected = False if not len(read): empty_buf += 1 else: empty_buf = 0 buf_server += read # set the other socket to notify us when it's # available for writing Loading @@ -1055,6 +1059,10 @@ class TCPTunnelJob(BaseJob): read = self._sock_client.recv(4096) except socket.error: connected = False if not len(read): empty_buf += 1 else: empty_buf = 0 buf_client += read # set the other socket to notify us when it's # available for writing Loading @@ -1072,6 +1080,8 @@ class TCPTunnelJob(BaseJob): # if the buffer becomes empty, stop write polling if not len(buf_server): poller.modify(self._sock_client, mask_ro) if empty_buf >= 10: connected = False if connected is False: self._log.append('disconnected') try: Loading Loading
ccnode/jobs.py +13 −3 Original line number Diff line number Diff line Loading @@ -981,7 +981,7 @@ class TCPTunnelJob(BaseJob): except socket.timeout: pass if self._sock_server is None: return # job cancelled break # job cancelled ## connect to the endpoint timeout = 15 # FIXME must be argument Loading @@ -1000,7 +1000,7 @@ class TCPTunnelJob(BaseJob): self._log.append('socket error (connection refused ?)') time.sleep(retry_interval) if self._cancelled: return break if not connected: continue Loading @@ -1014,11 +1014,11 @@ class TCPTunnelJob(BaseJob): # forward data until a connection is closed buf_server = '' buf_client = '' empty_buf = 0 connected = True while not self._cancelled and connected: # wait for events on both sockets poll = poller.poll() ## process events for read/write operations only for fd, events in poll: # events are for server socket if fd == self._sock_server.fileno(): Loading @@ -1029,6 +1029,10 @@ class TCPTunnelJob(BaseJob): read = self._sock_server.recv(4096) except socket.error: connected = False if not len(read): empty_buf += 1 else: empty_buf = 0 buf_server += read # set the other socket to notify us when it's # available for writing Loading @@ -1055,6 +1059,10 @@ class TCPTunnelJob(BaseJob): read = self._sock_client.recv(4096) except socket.error: connected = False if not len(read): empty_buf += 1 else: empty_buf = 0 buf_client += read # set the other socket to notify us when it's # available for writing Loading @@ -1072,6 +1080,8 @@ class TCPTunnelJob(BaseJob): # if the buffer becomes empty, stop write polling if not len(buf_server): poller.modify(self._sock_client, mask_ro) if empty_buf >= 10: connected = False if connected is False: self._log.append('disconnected') try: Loading