Support ipv6 for Pex request parsing
This commit is contained in:
parent
1350096545
commit
6ac1960c47
1 changed files with 6 additions and 3 deletions
|
@ -1,6 +1,7 @@
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
|
import itertools
|
||||||
|
|
||||||
import gevent
|
import gevent
|
||||||
|
|
||||||
|
@ -260,15 +261,17 @@ class Peer(object):
|
||||||
|
|
||||||
# give back 5 connectible peers
|
# give back 5 connectible peers
|
||||||
packed_peers = helper.packPeers(self.site.getConnectablePeers(5, allow_private=False))
|
packed_peers = helper.packPeers(self.site.getConnectablePeers(5, allow_private=False))
|
||||||
request = {"site": site.address, "peers": packed_peers["ip4"], "need": need_num}
|
request = {"site": site.address, "peers": packed_peers["ipv4"], "need": need_num}
|
||||||
if packed_peers["onion"]:
|
if packed_peers["onion"]:
|
||||||
request["peers_onion"] = packed_peers["onion"]
|
request["peers_onion"] = packed_peers["onion"]
|
||||||
|
if 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
|
||||||
# Ip4
|
|
||||||
for peer in res.get("peers", []):
|
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
|
||||||
|
|
Loading…
Reference in a new issue