Don't connect to nodes with the same nonce
This commit is contained in:
parent
9bb3038547
commit
2b0c701532
|
@ -380,10 +380,16 @@ class ConnectionBase(threading.Thread):
|
|||
if (
|
||||
version.protocol_version != shared.protocol_version
|
||||
or version.nonce == shared.nonce
|
||||
or version.nonce in shared.nonce_pool.values()
|
||||
):
|
||||
logging.warning(
|
||||
'Disconnecting v%s node %s with nonce %s',
|
||||
version.protocol_version, self.host_print,
|
||||
base64.b16encode(version.nonce))
|
||||
self.status = 'disconnecting'
|
||||
self.send_queue.put(None)
|
||||
else:
|
||||
shared.nonce_pool[self.host] = version.nonce
|
||||
logging.info(
|
||||
'%s:%s claims to be %s',
|
||||
self.host_print, self.port, version.user_agent)
|
||||
|
|
|
@ -106,6 +106,10 @@ class Manager(threading.Thread):
|
|||
if not c.is_alive() or c.status == 'disconnected':
|
||||
with shared.connections_lock:
|
||||
shared.connections.remove(c)
|
||||
try:
|
||||
del shared.nonce_pool[c.host]
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
hosts.add(structure.NetAddrNoPrefix.network_group(c.host))
|
||||
if not c.server:
|
||||
|
|
|
@ -54,6 +54,7 @@ core_nodes = set()
|
|||
|
||||
node_pool = set()
|
||||
unchecked_node_pool = set()
|
||||
nonce_pool = {}
|
||||
|
||||
i2p_core_nodes = set()
|
||||
i2p_node_pool = set()
|
||||
|
|
Loading…
Reference in New Issue
Block a user