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
|
# Process result got back from tracker
|
||||||
def processPeerRes(tracker_address, site, peers):
|
def processPeerRes(tracker_address, site, peers):
|
||||||
added = 0
|
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
|
# Ip4
|
||||||
found_ipv4 = 0
|
found_ipv4 = 0
|
||||||
peers_normal = itertools.chain(peers.get("ip4", []), peers.get("ipv4", []), peers.get("ipv6", []))
|
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)
|
peer_ip, peer_port = helper.unpackAddress(packed_address)
|
||||||
if site.addPeer(peer_ip, peer_port, source="tracker"):
|
if site.addPeer(peer_ip, peer_port, source="tracker"):
|
||||||
added += 1
|
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:
|
if added:
|
||||||
site.worker_manager.onPeers()
|
site.worker_manager.onPeers()
|
||||||
|
|
|
@ -130,7 +130,10 @@ class Peer(object):
|
||||||
def found(self, source="other"):
|
def found(self, source="other"):
|
||||||
if self.reputation < 5:
|
if self.reputation < 5:
|
||||||
if source == "tracker":
|
if source == "tracker":
|
||||||
self.reputation += 1
|
if self.ip.endswith(".onion"):
|
||||||
|
self.reputation += 1
|
||||||
|
else:
|
||||||
|
self.reputation += 2
|
||||||
elif source == "local":
|
elif source == "local":
|
||||||
self.reputation += 3
|
self.reputation += 3
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue