Prefer connecting to non-onion peers
This commit is contained in:
parent
89e8fd3d3a
commit
c21fe3d23a
2 changed files with 13 additions and 8 deletions
|
@ -21,6 +21,15 @@ def importHostClasses():
|
|||
# Process result got back from tracker
|
||||
def processPeerRes(tracker_address, site, peers):
|
||||
added = 0
|
||||
|
||||
# Onion
|
||||
found_onion = 0
|
||||
for packed_address in peers["onion"]:
|
||||
found_onion += 1
|
||||
peer_onion, peer_port = helper.unpackOnionAddress(packed_address)
|
||||
if site.addPeer(peer_onion, peer_port, source="tracker"):
|
||||
added += 1
|
||||
|
||||
# Ip4
|
||||
found_ipv4 = 0
|
||||
peers_normal = itertools.chain(peers.get("ip4", []), peers.get("ipv4", []), peers.get("ipv6", []))
|
||||
|
@ -29,13 +38,6 @@ def processPeerRes(tracker_address, site, peers):
|
|||
peer_ip, peer_port = helper.unpackAddress(packed_address)
|
||||
if site.addPeer(peer_ip, peer_port, source="tracker"):
|
||||
added += 1
|
||||
# Onion
|
||||
found_onion = 0
|
||||
for packed_address in peers["onion"]:
|
||||
found_onion += 1
|
||||
peer_onion, peer_port = helper.unpackOnionAddress(packed_address)
|
||||
if site.addPeer(peer_onion, peer_port, source="tracker"):
|
||||
added += 1
|
||||
|
||||
if added:
|
||||
site.worker_manager.onPeers()
|
||||
|
|
|
@ -130,7 +130,10 @@ class Peer(object):
|
|||
def found(self, source="other"):
|
||||
if self.reputation < 5:
|
||||
if source == "tracker":
|
||||
if self.ip.endswith(".onion"):
|
||||
self.reputation += 1
|
||||
else:
|
||||
self.reputation += 2
|
||||
elif source == "local":
|
||||
self.reputation += 3
|
||||
|
||||
|
|
Loading…
Reference in a new issue