From 0209d3e498ee4e5b8ff4e59ed28a12d00c8279b8 Mon Sep 17 00:00:00 2001 From: Alexey Kasyanchuk Date: Sat, 3 Mar 2018 02:13:40 +0300 Subject: [PATCH] fix(p2p): some ignoring of local addresses --- src/background/p2p.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/background/p2p.js b/src/background/p2p.js index 18fdb72..daee043 100644 --- a/src/background/p2p.js +++ b/src/background/p2p.js @@ -1,6 +1,7 @@ const config = require('./config'); const net = require('net') const JsonSocket = require('json-socket') +const os = require('os'); class p2p { peers = [] @@ -14,7 +15,11 @@ class p2p { this.tcpServer = net.createServer(); this.tcpServer.on('connection', (socket) => { // try to setup back connection - this.add(socket.address()) + const address = socket.address() + if(address.family == 'IPv4') + { + this.add(address) + } socket = new JsonSocket(socket); socket.on('error', (err) => {}) @@ -39,6 +44,25 @@ class p2p { protocol: 'rats' }) }) + + // ignore local addresses + const ifaces = os.networkInterfaces(); + Object.keys(ifaces).forEach((ifname) => { + let alias = 0; + ifaces[ifname].forEach((iface) => { + if ('IPv4' !== iface.family || iface.internal !== false) { + return; + } + + if (alias >= 1) { + // nothing + } else { + console.log('ignore local address', iface.address); + this.ignoreAddresses.push(iface.address) + } + ++alias; + }); + }); } listen() {