Message from local peer does not means internet connection
This commit is contained in:
parent
a265c2a7ca
commit
70fd33e587
2 changed files with 10 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue