diff --git a/swarm/network/discovery_test.go b/swarm/network/discovery_test.go index 17324f3972..a5078b2443 100644 --- a/swarm/network/discovery_test.go +++ b/swarm/network/discovery_test.go @@ -160,9 +160,7 @@ func testInitialPeersMsg(t *testing.T, peerPO, peerDepth int) { // block until control peer is found among hive peers found := false for attempts := 0; attempts < 20; attempts++ { - hive.lock.Lock() - _, found = hive.peers[peerID] - hive.lock.Unlock() + found = hive.Peer(peerID) != nil if found { break } diff --git a/swarm/network/hive.go b/swarm/network/hive.go index a0b6b988ab..130a755115 100644 --- a/swarm/network/hive.go +++ b/swarm/network/hive.go @@ -209,6 +209,15 @@ func (h *Hive) PeerInfo(id enode.ID) interface{} { } } +// Peer returns a bzz peer from the Hive. If there is no peer +// with the provided enode id, a nil value is returned. +func (h *Hive) Peer(id enode.ID) *BzzPeer { + h.lock.Lock() + defer h.lock.Unlock() + + return h.peers[id] +} + // loadPeers, savePeer implement persistence callback/ func (h *Hive) loadPeers() error { var as []*BzzAddr