diff --git a/waku/v2/discv5/discover.go b/waku/v2/discv5/discover.go index ab1dd606..857fcfd7 100644 --- a/waku/v2/discv5/discover.go +++ b/waku/v2/discv5/discover.go @@ -294,8 +294,13 @@ func (d *DiscoveryV5) iterate(ctx context.Context) error { } if len(peerAddrs) != 0 { - d.peerConnector.PeerChannel() <- peerAddrs[0] + select { + case d.peerConnector.PeerChannel() <- peerAddrs[0]: + case <-ctx.Done(): + return nil + } } + select { case <-ctx.Done(): return nil diff --git a/waku/v2/rendezvous/rendezvous.go b/waku/v2/rendezvous/rendezvous.go index 72bae0d8..d0adea47 100644 --- a/waku/v2/rendezvous/rendezvous.go +++ b/waku/v2/rendezvous/rendezvous.go @@ -124,7 +124,11 @@ func (r *Rendezvous) discover(ctx context.Context) { server.Unlock() for _, addr := range addrInfo { - r.peerConnector.PeerChannel() <- addr + select { + case r.peerConnector.PeerChannel() <- addr: + case <-ctx.Done(): + return + } } } else { // TODO: change log level to DEBUG in go-libp2p-rendezvous@v0.4.1/svc.go:234 discover query