From 961302464d57e1e3f017248ba68f2922255e3404 Mon Sep 17 00:00:00 2001 From: Anton Evangelatov Date: Thu, 28 Feb 2019 15:00:02 +0100 Subject: [PATCH] swarm/network: update underlay address in Kademlia.Register --- swarm/network/kademlia.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/swarm/network/kademlia.go b/swarm/network/kademlia.go index e33b1b8642..a939c8509b 100644 --- a/swarm/network/kademlia.go +++ b/swarm/network/kademlia.go @@ -155,11 +155,17 @@ func (k *Kademlia) Register(peers ...*BzzAddr) error { return newEntry(p) } - e, ok := v.(*entry) - if ok { - log.Trace("found among known peers, do nothing", "new", p, "old", e.BzzAddr) + e := v.(*entry) + + // if underlay address is different, still add + if bytes.Compare(e.BzzAddr.UAddr, p.UAddr) != 0 { + log.Trace("underlay addr is different, so add again", "new", p, "old", e.BzzAddr) + // insert new offline peer into conns + return newEntry(p) } + log.Trace("found among known peers, underlay addr is same, do nothing", "new", p, "old", e.BzzAddr) + return v }) if found {