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"]
|
request["peers_onion"] = packed_peers["onion"]
|
||||||
if packed_peers["ipv6"]:
|
if packed_peers["ipv6"]:
|
||||||
request["peers_ipv6"] = packed_peers["ipv6"]
|
request["peers_ipv6"] = packed_peers["ipv6"]
|
||||||
|
|
||||||
res = self.request("pex", request)
|
res = self.request("pex", request)
|
||||||
|
|
||||||
if not res or "error" in res:
|
if not res or "error" in res:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
added = 0
|
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", [])):
|
for peer in itertools.chain(res.get("peers", []), res.get("peers_ipv6", [])):
|
||||||
address = helper.unpackAddress(peer)
|
address = helper.unpackAddress(peer)
|
||||||
if site.addPeer(*address, source="pex"):
|
if site.addPeer(*address, source="pex"):
|
||||||
added += 1
|
added += 1
|
||||||
# Onion
|
|
||||||
|
# Add Onion
|
||||||
for peer in res.get("peers_onion", []):
|
for peer in res.get("peers_onion", []):
|
||||||
address = helper.unpackOnionAddress(peer)
|
address = helper.unpackOnionAddress(peer)
|
||||||
if site.addPeer(*address, source="pex"):
|
if site.addPeer(*address, source="pex"):
|
||||||
|
|
Loading…
Reference in a new issue