Prefer connecting to non-onion peers

This commit is contained in:
shortcutme 2019-11-25 14:30:51 +01:00
parent 89e8fd3d3a
commit c21fe3d23a
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 13 additions and 8 deletions

View file

@ -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()

View file

@ -130,7 +130,10 @@ class Peer(object):
def found(self, source="other"):
if self.reputation < 5:
if source == "tracker":
self.reputation += 1
if self.ip.endswith(".onion"):
self.reputation += 1
else:
self.reputation += 2
elif source == "local":
self.reputation += 3