mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-05-21 22:51:20 +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()
|
var ps = self.createProtoStream()
|
||||||
|
|
||||||
ps.on('identify', function (msg) {
|
ps.on('identify', function (msg) {
|
||||||
// console.log('RECEIVED PROTOBUF - ', msg)
|
|
||||||
updateSelf(peerSelf, msg.observedAddr)
|
updateSelf(peerSelf, msg.observedAddr)
|
||||||
|
|
||||||
var peerId = Id.createFromPubKey(msg.publicKey)
|
var peerId = Id.createFromPubKey(msg.publicKey)
|
||||||
@ -113,6 +112,22 @@ function getMultiaddr (socket) {
|
|||||||
|
|
||||||
function updateSelf (peerSelf, observedAddr) {
|
function updateSelf (peerSelf, observedAddr) {
|
||||||
var omh = multiaddr(observedAddr)
|
var omh = multiaddr(observedAddr)
|
||||||
|
|
||||||
|
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
|
var isIn = false
|
||||||
peerSelf.multiaddrs.forEach(function (mh) {
|
peerSelf.multiaddrs.forEach(function (mh) {
|
||||||
if (mh.toString() === omh.toString()) {
|
if (mh.toString() === omh.toString()) {
|
||||||
@ -123,4 +138,5 @@ function updateSelf (peerSelf, observedAddr) {
|
|||||||
if (!isIn) {
|
if (!isIn) {
|
||||||
peerSelf.multiaddrs.push(omh)
|
peerSelf.multiaddrs.push(omh)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user