Skip to content

Commit 06db400

Browse files
Merge pull request #102 from libp2p/feat/connectedness
swarm: add optimized method for checking connectedness to peer
2 parents 23ccae5 + 324aae3 commit 06db400

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

p2p/net/swarm/swarm.go

+9
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,15 @@ func (s *Swarm) ConnectionsToPeer(p peer.ID) []*Conn {
286286
return wrapConns(ps.ConnsWithGroup(p, s.swarm.Conns()))
287287
}
288288

289+
func (s *Swarm) HaveConnsToPeer(p peer.ID) bool {
290+
for _, c := range s.swarm.Conns() {
291+
if c.InGroup(p) {
292+
return true
293+
}
294+
}
295+
return false
296+
}
297+
289298
// Connections returns a slice of all connections.
290299
func (s *Swarm) Connections() []*Conn {
291300
return wrapConns(s.swarm.Conns())

p2p/net/swarm/swarm_net.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,7 @@ func (n *Network) InterfaceListenAddresses() ([]ma.Multiaddr, error) {
123123
// Connectedness returns a state signaling connection capabilities
124124
// For now only returns Connected || NotConnected. Expand into more later.
125125
func (n *Network) Connectedness(p peer.ID) inet.Connectedness {
126-
c := n.Swarm().ConnectionsToPeer(p)
127-
if len(c) > 0 {
126+
if n.Swarm().HaveConnsToPeer(p) {
128127
return inet.Connected
129128
}
130129
return inet.NotConnected

0 commit comments

Comments
 (0)