From c21fe3d23a2ab0d07ff9f6db17fa8a8bdb54b6fe Mon Sep 17 00:00:00 2001 From: shortcutme Date: Mon, 25 Nov 2019 14:30:51 +0100 Subject: [PATCH] Prefer connecting to non-onion peers --- plugins/AnnounceZero/AnnounceZeroPlugin.py | 16 +++++++++------- src/Peer/Peer.py | 5 ++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/plugins/AnnounceZero/AnnounceZeroPlugin.py b/plugins/AnnounceZero/AnnounceZeroPlugin.py index dcaa04f0..7f31e052 100644 --- a/plugins/AnnounceZero/AnnounceZeroPlugin.py +++ b/plugins/AnnounceZero/AnnounceZeroPlugin.py @@ -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() diff --git a/src/Peer/Peer.py b/src/Peer/Peer.py index b5b22436..60113294 100644 --- a/src/Peer/Peer.py +++ b/src/Peer/Peer.py @@ -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