Comparing version 6.8.2 to 6.8.3
@@ -5,3 +5,3 @@ const NoiseSecretStream = require('@hyperswarm/secret-stream') | ||
const DebuggingStream = require('debugging-stream') | ||
const { isPrivate } = require('bogon') | ||
const { isPrivate, isBogon } = require('bogon') | ||
const Semaphore = require('./semaphore') | ||
@@ -179,2 +179,11 @@ const NoiseWrap = require('./noise-wrap') | ||
function getFirstRemoteAddress (addrs, serverAddress) { | ||
for (const addr of addrs) { | ||
if (isBogon(addr.host)) continue | ||
return addr | ||
} | ||
return serverAddress | ||
} | ||
async function holepunch (c, opts) { | ||
@@ -188,5 +197,6 @@ let { relayAddress, serverAddress, clientAddress, payload } = c.connect | ||
if (payload.firewall === FIREWALL.OPEN || (relayed && !remoteHolepunchable)) { | ||
if (payload.addresses4.length) { | ||
const addr = getFirstRemoteAddress(payload.addresses4, serverAddress) | ||
if (addr) { | ||
const socket = c.dht.socket | ||
c.onsocket(socket, payload.addresses4[0].port, payload.addresses4[0].host) | ||
c.onsocket(socket, addr.port, addr.host) | ||
return | ||
@@ -193,0 +203,0 @@ } |
{ | ||
"name": "hyperdht", | ||
"version": "6.8.2", | ||
"version": "6.8.3", | ||
"description": "The DHT powering Hyperswarm", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
130430
3625