Added TCP keepalive to telnet and webclient, to make sure to (eventually) catch dead connections. Should help #498, but should test on demo before closing.

This commit is contained in:
Griatch 2014-10-20 23:40:01 +02:00
parent b8dfce9cef
commit 263092b4c9
3 changed files with 5 additions and 1 deletions

View file

@ -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)

View file

@ -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):

View file

@ -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.")