fix(p2p): situation when ignoring yourself address is very slow
This commit is contained in:
parent
e68087fda3
commit
5cd9b9f229
@ -74,7 +74,7 @@ class p2p {
|
|||||||
// nothing
|
// nothing
|
||||||
} else {
|
} else {
|
||||||
console.log('ignore local address', iface.address);
|
console.log('ignore local address', iface.address);
|
||||||
this.ignoreAddresses.push(iface.address)
|
this.ignore(iface.address)
|
||||||
}
|
}
|
||||||
++alias;
|
++alias;
|
||||||
});
|
});
|
||||||
@ -152,6 +152,7 @@ class p2p {
|
|||||||
clearTimeout(protocolTimeout)
|
clearTimeout(protocolTimeout)
|
||||||
// add to peers
|
// add to peers
|
||||||
address.emit = emit
|
address.emit = emit
|
||||||
|
address.disconnect = () => rawSocket.destroy()
|
||||||
this.size++;
|
this.size++;
|
||||||
this.send('peer', this.size)
|
this.send('peer', this.size)
|
||||||
console.log('new peer', address)
|
console.log('new peer', address)
|
||||||
@ -211,6 +212,19 @@ class p2p {
|
|||||||
return localPeer.address === peer.address
|
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
|
module.exports = p2p
|
@ -1101,7 +1101,7 @@ checkInternet((connected) => {
|
|||||||
stunServer.close()
|
stunServer.close()
|
||||||
|
|
||||||
console.log('p2p stun ignore my address', address)
|
console.log('p2p stun ignore my address', address)
|
||||||
p2p.ignoreAddresses.push(address)
|
p2p.ignore(address)
|
||||||
})
|
})
|
||||||
stunServer.send(stunRequest, 19302, 'stun.l.google.com')
|
stunServer.send(stunRequest, 19302, 'stun.l.google.com')
|
||||||
})
|
})
|
||||||
@ -1165,7 +1165,7 @@ if(config.upnp)
|
|||||||
return
|
return
|
||||||
|
|
||||||
console.log('p2p upnp ignore my address', ip)
|
console.log('p2p upnp ignore my address', ip)
|
||||||
p2p.ignoreAddresses.push(ip)
|
p2p.ignore(ip)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user