diff --git a/src/server/portal/telnet.py b/src/server/portal/telnet.py index f02a0e3d7b..1118dd9e2c 100644 --- a/src/server/portal/telnet.py +++ b/src/server/portal/telnet.py @@ -50,6 +50,8 @@ class TelnetProtocol(Telnet, StatefulTelnetProtocol, Session): self.msdp = msdp.Msdp(self) # mxp support self.mxp = Mxp(self) + # keepalive watches for dead links + self.transport.setTcpKeepAlive(1) # add this new connection to sessionhandler so # the Server becomes aware of it. self.sessionhandler.connect(self) diff --git a/src/server/portal/websocket_client.py b/src/server/portal/websocket_client.py index 1b5fe8656b..f8b14f6c5d 100644 --- a/src/server/portal/websocket_client.py +++ b/src/server/portal/websocket_client.py @@ -46,6 +46,8 @@ class WebSocketClient(Protocol, Session): """ client_address = self.transport.client self.init_session("websocket", client_address, self.factory.sessionhandler) + # watch for dead links + self.transport.setTcpKeepAlive(1) self.sessionhandler.connect(self) def disconnect(self, reason=None): diff --git a/src/server/sessionhandler.py b/src/server/sessionhandler.py index 8d12482161..b47579b78b 100644 --- a/src/server/sessionhandler.py +++ b/src/server/sessionhandler.py @@ -412,7 +412,7 @@ class ServerSessionHandler(SessionHandler): def validate_sessions(self): """ Check all currently connected sessions (logged in and not) - and see if any are dead. + and see if any are dead or idle """ tcurr = time.time() reason = _("Idle timeout exceeded, disconnecting.")