From 53be4c9e99f89ca04e477b07f18c7881b509d8c1 Mon Sep 17 00:00:00 2001 From: zelig Date: Thu, 18 May 2017 14:02:10 -0700 Subject: [PATCH] swarm/network: add lock to seen map in discovery --- swarm/network/discovery.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swarm/network/discovery.go b/swarm/network/discovery.go index e6492e2b35..db2e2be60b 100644 --- a/swarm/network/discovery.go +++ b/swarm/network/discovery.go @@ -2,6 +2,7 @@ package network import ( "fmt" + "sync" "github.com/ethereum/go-ethereum/log" ) @@ -11,6 +12,7 @@ import ( type discPeer struct { *bzzPeer overlay Overlay + mtx sync.Mutex peers map[string]bool depth uint8 // the proximity radius advertised by remote to subscribe to peers sentPeers bool // set to true when the peer is first notifed of peers close to them @@ -206,6 +208,8 @@ func RequestOrder(k Overlay, order, broadcastSize, maxPeers uint8) { } func (self *discPeer) seen(p OverlayPeer) bool { + self.mtx.Lock() + defer self.mtx.Unlock() k := string(p.Address()) if self.peers[k] { return true