From c60d47882b8130808051240f39518f8360070c3a Mon Sep 17 00:00:00 2001 From: Shane Howley Date: Wed, 14 Feb 2018 11:41:13 +0000 Subject: [PATCH] swarm/network: Fix for local node address not being set correctly This was causing nodes to share bad addresses during peer discovery. The Update(OverlayAddr) interface method returns an updated copy rather than mutating the existing object. --- swarm/network/protocol.go | 4 ++-- swarm/swarm.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/swarm/network/protocol.go b/swarm/network/protocol.go index 0cf682fb98..7a838b8d9f 100644 --- a/swarm/network/protocol.go +++ b/swarm/network/protocol.go @@ -124,10 +124,10 @@ func NewBzz(config *BzzConfig, kad Overlay, store StateStore) *Bzz { // UpdateLocalAddr updates underlayaddress of the running node func (b *Bzz) UpdateLocalAddr(byteaddr []byte) *BzzAddr { - b.localAddr.Update(&BzzAddr{ + b.localAddr = b.localAddr.Update(&BzzAddr{ UAddr: byteaddr, OAddr: b.localAddr.OAddr, - }) + }).(*BzzAddr) return b.localAddr } diff --git a/swarm/swarm.go b/swarm/swarm.go index 0ec85adadd..b28b5aaafa 100644 --- a/swarm/swarm.go +++ b/swarm/swarm.go @@ -209,7 +209,7 @@ func (self *Swarm) Start(srv *p2p.Server) error { // update uaddr to correct enode newaddr := self.bzz.UpdateLocalAddr([]byte(srv.Self().String())) - log.Warn("Updated bzz local addr", "oaddr", fmt.Sprintf("%x", newaddr.OAddr), "uaddr", fmt.Sprintf("%x", newaddr.UAddr)) + log.Warn("Updated bzz local addr", "oaddr", fmt.Sprintf("%x", newaddr.OAddr), "uaddr", fmt.Sprintf("%s", newaddr.UAddr)) // set chequebook if self.config.SwapEnabled {