From 324aae38f13e3e2e8fd58adc44d844a8e1377130 Mon Sep 17 00:00:00 2001 From: Jeromy Date: Mon, 5 Sep 2016 13:25:24 -0700 Subject: [PATCH] swarm: add optimized method for checking connectedness to peer --- p2p/net/swarm/swarm.go | 9 +++++++++ p2p/net/swarm/swarm_net.go | 3 +-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/p2p/net/swarm/swarm.go b/p2p/net/swarm/swarm.go index 05eecec..abab8e8 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 48defb1..abf2f21 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 -- GitLab