fix multiaddr explosion

This commit is contained in:
David Dias 2015-07-20 14:42:47 -07:00
parent d67b3dff32
commit a9855a0b42

View File

@ -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,6 +112,22 @@ function getMultiaddr (socket) {
function updateSelf (peerSelf, 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
peerSelf.multiaddrs.forEach(function (mh) {
if (mh.toString() === omh.toString()) {
@ -124,3 +139,4 @@ function updateSelf (peerSelf, observedAddr) {
peerSelf.multiaddrs.push(omh)
}
}
}