mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-05-21 14:41:22 +00:00
fix multiaddr explosion
This commit is contained in:
parent
d67b3dff32
commit
a9855a0b42
@ -25,7 +25,6 @@ function Identify (swarm, peerSelf) {
|
||||
var ps = self.createProtoStream()
|
||||
|
||||
ps.on('identify', function (msg) {
|
||||
// console.log('RECEIVED PROTOBUF - ', msg)
|
||||
updateSelf(peerSelf, msg.observedAddr)
|
||||
|
||||
var peerId = Id.createFromPubKey(msg.publicKey)
|
||||
@ -113,14 +112,31 @@ function getMultiaddr (socket) {
|
||||
|
||||
function updateSelf (peerSelf, observedAddr) {
|
||||
var omh = multiaddr(observedAddr)
|
||||
var isIn = false
|
||||
peerSelf.multiaddrs.forEach(function (mh) {
|
||||
if (mh.toString() === omh.toString()) {
|
||||
isIn = true
|
||||
}
|
||||
})
|
||||
|
||||
if (!isIn) {
|
||||
peerSelf.multiaddrs.push(omh)
|
||||
if (!peerSelf.previousObservedAddrs) {
|
||||
peerSelf.previousObservedAddrs = []
|
||||
}
|
||||
|
||||
for (var i = 0; i < peerSelf.previousObservedAddrs.length; i++) {
|
||||
if (peerSelf.previousObservedAddrs[i].toString() === omh.toString()) {
|
||||
peerSelf.previousObserveredAddrs.splice(i, 1)
|
||||
addToSelf()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
peerSelf.previousObservedAddrs.push(observedAddr)
|
||||
|
||||
function addToSelf () {
|
||||
var isIn = false
|
||||
peerSelf.multiaddrs.forEach(function (mh) {
|
||||
if (mh.toString() === omh.toString()) {
|
||||
isIn = true
|
||||
}
|
||||
})
|
||||
|
||||
if (!isIn) {
|
||||
peerSelf.multiaddrs.push(omh)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user