Tuned TCP socket options

This commit is contained in:
Mark Qvist 2022-06-12 11:50:09 +02:00
parent 58eaceb48c
commit d7a444556a
1 changed files with 7 additions and 6 deletions

View File

@ -65,15 +65,15 @@ class TCPClientInterface(Interface):
RECONNECT_MAX_TRIES = None RECONNECT_MAX_TRIES = None
# TCP socket options # TCP socket options
TCP_USER_TIMEOUT = 20 TCP_USER_TIMEOUT = 24
TCP_PROBE_AFTER = 5 TCP_PROBE_AFTER = 5
TCP_PROBE_INTERVAL = 3 TCP_PROBE_INTERVAL = 2
TCP_PROBES = 5 TCP_PROBES = 12
I2P_USER_TIMEOUT = 40 I2P_USER_TIMEOUT = 45
I2P_PROBE_AFTER = 10 I2P_PROBE_AFTER = 10
I2P_PROBE_INTERVAL = 5 I2P_PROBE_INTERVAL = 9
I2P_PROBES = 6 I2P_PROBES = 5
def __init__(self, owner, name, target_ip=None, target_port=None, connected_socket=None, max_reconnect_tries=None, kiss_framing=False, i2p_tunneled = False): def __init__(self, owner, name, target_ip=None, target_port=None, connected_socket=None, max_reconnect_tries=None, kiss_framing=False, i2p_tunneled = False):
self.rxb = 0 self.rxb = 0
@ -139,6 +139,7 @@ class TCPClientInterface(Interface):
self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, int(TCPClientInterface.TCP_PROBE_AFTER)) self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, int(TCPClientInterface.TCP_PROBE_AFTER))
self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, int(TCPClientInterface.TCP_PROBE_INTERVAL)) self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, int(TCPClientInterface.TCP_PROBE_INTERVAL))
self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, int(TCPClientInterface.TCP_PROBES)) self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, int(TCPClientInterface.TCP_PROBES))
else: else:
self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_USER_TIMEOUT, int(TCPClientInterface.I2P_USER_TIMEOUT * 1000)) self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_USER_TIMEOUT, int(TCPClientInterface.I2P_USER_TIMEOUT * 1000))
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)