From ce3a1a298a1c4d38dfd1e0d228b2eafff2e647a4 Mon Sep 17 00:00:00 2001 From: "Patrick J. McNerthney" Date: Mon, 7 Sep 2020 11:56:01 -1000 Subject: [PATCH] Rework loop which collects the local python sockets for read and writing. --- stream/ws_client.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/stream/ws_client.py b/stream/ws_client.py index fafba79a6..b8204599f 100644 --- a/stream/ws_client.py +++ b/stream/ws_client.py @@ -322,19 +322,21 @@ class PortForward: rlist.append(self.websocket) if kubernetes_data: wlist.append(self.websocket) - all_closed = True + local_all_closed = True for port in self.local_ports.values(): if port.python.fileno() != -1: - if port.data: - wlist.append(port.python) - all_closed = False + if self.websocket.connected: + rlist.append(port.python) + if port.data: + wlist.append(port.python) + local_all_closed = False else: - if self.websocket.connected: - rlist.append(port.python) - all_closed = False + if port.data: + wlist.append(port.python) + local_all_closed = False else: port.python.close() - if all_closed and (not self.websocket.connected or not kubernetes_data): + if local_all_closed and not (self.websocket.connected and kubernetes_data): self.websocket.close() return r, w, _ = select.select(rlist, wlist, [])