enable keepalive

This commit is contained in:
Rossen Georgiev 2014-11-16 21:10:47 +00:00
parent 2c9ff4faad
commit 3f27229405
1 changed files with 8 additions and 1 deletions

View File

@ -160,12 +160,19 @@ class IS(object):
try:
self.sock = socket.create_connection(self.server, 15) # 15 seconds connection timeout
self.sock.settimeout(5) # 5 second timeout to receive server banner
self.sock.setblocking(True)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
self.sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 15)
self.sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT, 3)
self.sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 5)
if self.sock.recv(512)[0] != "#":
raise ConnectionError("invalid banner from server")
self.sock.setblocking(True)
except Exception, e:
self.close()