Remove ipv6 and onion from pex result if not supported
This commit is contained in:
parent
9d849a16ec
commit
81bf349871
1 changed files with 13 additions and 1 deletions
|
@ -267,16 +267,28 @@ class Peer(object):
|
|||
request["peers_onion"] = packed_peers["onion"]
|
||||
if packed_peers["ipv6"]:
|
||||
request["peers_ipv6"] = packed_peers["ipv6"]
|
||||
|
||||
res = self.request("pex", request)
|
||||
|
||||
if not res or "error" in res:
|
||||
return False
|
||||
|
||||
added = 0
|
||||
|
||||
# Remove unsupported peer types
|
||||
if "peers_ipv6" in res and "ipv6" not in self.connection.server.supported_ip_types:
|
||||
del res["peers_ipv6"]
|
||||
|
||||
if "peers_onion" in res and "onion" not in self.connection.server.supported_ip_types:
|
||||
del res["peers_onion"]
|
||||
|
||||
# Add IPv4 + IPv6
|
||||
for peer in itertools.chain(res.get("peers", []), res.get("peers_ipv6", [])):
|
||||
address = helper.unpackAddress(peer)
|
||||
if site.addPeer(*address, source="pex"):
|
||||
added += 1
|
||||
# Onion
|
||||
|
||||
# Add Onion
|
||||
for peer in res.get("peers_onion", []):
|
||||
address = helper.unpackOnionAddress(peer)
|
||||
if site.addPeer(*address, source="pex"):
|
||||
|
|
Loading…
Reference in a new issue