diff --git a/src/background/p2p.js b/src/background/p2p.js index 0224a3d..b5adf26 100644 --- a/src/background/p2p.js +++ b/src/background/p2p.js @@ -74,7 +74,7 @@ class p2p { // nothing } else { console.log('ignore local address', iface.address); - this.ignoreAddresses.push(iface.address) + this.ignore(iface.address) } ++alias; }); @@ -152,6 +152,7 @@ class p2p { clearTimeout(protocolTimeout) // add to peers address.emit = emit + address.disconnect = () => rawSocket.destroy() this.size++; this.send('peer', this.size) console.log('new peer', address) @@ -211,6 +212,19 @@ class p2p { return localPeer.address === peer.address }) } + + ignore(address) + { + this.ignoreAddresses.push(address) + // close all connected peers (if they connected already) + this.peers.forEach(peer => { + if(peer.address !== address) + return + + if(peer.disconnect) + peer.disconnect() + }) + } } module.exports = p2p \ No newline at end of file diff --git a/src/background/spider.js b/src/background/spider.js index 57152d0..e8f9c0e 100644 --- a/src/background/spider.js +++ b/src/background/spider.js @@ -1101,7 +1101,7 @@ checkInternet((connected) => { stunServer.close() console.log('p2p stun ignore my address', address) - p2p.ignoreAddresses.push(address) + p2p.ignore(address) }) stunServer.send(stunRequest, 19302, 'stun.l.google.com') }) @@ -1165,7 +1165,7 @@ if(config.upnp) return console.log('p2p upnp ignore my address', ip) - p2p.ignoreAddresses.push(ip) + p2p.ignore(ip) }); }