Message from local peer does not means internet connection

This commit is contained in:
shortcutme 2018-02-08 17:58:44 +01:00
parent a265c2a7ca
commit 70fd33e587
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 10 additions and 3 deletions

View file

@ -19,7 +19,7 @@ from util import helper
class Connection(object):
__slots__ = (
"sock", "sock_wrapped", "ip", "port", "cert_pin", "target_onion", "id", "protocol", "type", "server", "unpacker", "req_id",
"handshake", "crypt", "connected", "event_connected", "closed", "start_time", "last_recv_time",
"handshake", "crypt", "connected", "event_connected", "closed", "start_time", "last_recv_time", "is_private_ip",
"last_message_time", "last_send_time", "last_sent_time", "incomplete_buff_recv", "bytes_recv", "bytes_sent", "cpu_time", "send_lock",
"last_ping_delay", "last_req_time", "last_cmd_sent", "last_cmd_recv", "bad_actions", "sites", "name", "updateName", "waiting_requests", "waiting_streams"
)
@ -37,6 +37,11 @@ class Connection(object):
self.protocol = "?"
self.type = "?"
if helper.isPrivateIp(self.ip) and self.ip not in config.ip_local:
self.is_private_ip = True
else:
self.is_private_ip = False
self.server = server
self.unpacker = None # Stream incoming socket messages here
self.req_id = 0 # Last request id

View file

@ -18,7 +18,7 @@ from Tor import TorManager
from Site import SiteManager
class ConnectionServer:
class ConnectionServer(object):
def __init__(self, ip=None, port=None, request_handler=None):
self.ip = ip
self.port = port
@ -198,7 +198,9 @@ class ConnectionServer:
timeout_multipler = 1
idle = time.time() - max(connection.last_recv_time, connection.start_time, connection.last_message_time)
last_message_time = max(last_message_time, connection.last_message_time)
if connection.last_message_time > last_message_time and not connection.is_private_ip:
# Message from local IPs does not means internet connection
last_message_time = connection.last_message_time
if connection.unpacker and idle > 30:
# Delete the unpacker if not needed