enable keepalive
This commit is contained in:
parent
2c9ff4faad
commit
3f27229405
9
aprs.py
9
aprs.py
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue