fix(p2p): some ignoring of local addresses
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
const config = require('./config');
|
const config = require('./config');
|
||||||
const net = require('net')
|
const net = require('net')
|
||||||
const JsonSocket = require('json-socket')
|
const JsonSocket = require('json-socket')
|
||||||
|
const os = require('os');
|
||||||
|
|
||||||
class p2p {
|
class p2p {
|
||||||
peers = []
|
peers = []
|
||||||
@ -14,7 +15,11 @@ class p2p {
|
|||||||
this.tcpServer = net.createServer();
|
this.tcpServer = net.createServer();
|
||||||
this.tcpServer.on('connection', (socket) => {
|
this.tcpServer.on('connection', (socket) => {
|
||||||
// try to setup back connection
|
// 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 = new JsonSocket(socket);
|
||||||
socket.on('error', (err) => {})
|
socket.on('error', (err) => {})
|
||||||
@ -39,6 +44,25 @@ class p2p {
|
|||||||
protocol: 'rats'
|
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() {
|
listen() {
|
||||||
|
Reference in New Issue
Block a user