diff --git a/p2p/net/swarm/swarm.go b/p2p/net/swarm/swarm.go index 05eecec59aadba7556f11dd8043d2d5ad224a16b..abab8e8a4303cba9a7f57d291199f5447df1ad37 100644 --- a/p2p/net/swarm/swarm.go +++ b/p2p/net/swarm/swarm.go @@ -286,6 +286,15 @@ func (s *Swarm) ConnectionsToPeer(p peer.ID) []*Conn { return wrapConns(ps.ConnsWithGroup(p, s.swarm.Conns())) } +func (s *Swarm) HaveConnsToPeer(p peer.ID) bool { + for _, c := range s.swarm.Conns() { + if c.InGroup(p) { + return true + } + } + return false +} + // Connections returns a slice of all connections. func (s *Swarm) Connections() []*Conn { return wrapConns(s.swarm.Conns()) diff --git a/p2p/net/swarm/swarm_net.go b/p2p/net/swarm/swarm_net.go index 48defb11ad8efb0cc66c8102bf7f7bcc656a7dbb..abf2f21ce02633d873437f1bcdc919b011a3fe7c 100644 --- a/p2p/net/swarm/swarm_net.go +++ b/p2p/net/swarm/swarm_net.go @@ -123,8 +123,7 @@ func (n *Network) InterfaceListenAddresses() ([]ma.Multiaddr, error) { // Connectedness returns a state signaling connection capabilities // For now only returns Connected || NotConnected. Expand into more later. func (n *Network) Connectedness(p peer.ID) inet.Connectedness { - c := n.Swarm().ConnectionsToPeer(p) - if len(c) > 0 { + if n.Swarm().HaveConnsToPeer(p) { return inet.Connected } return inet.NotConnected