This commit is contained in:
Calvin Kim 2025-03-10 19:31:54 +07:00 committed by GitHub
commit 3827dae593
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1982,6 +1982,34 @@ type removeNodeMsg struct {
reply chan error
}
// ConnectedPeers returns an array consisting of all connected peers.
func (s *server) ConnectedPeers() []*peer.Peer {
replyChan := make(chan []*serverPeer, 1)
// Send a query for a subscription for the connected peers.
select {
case s.query <- getPeersMsg{
reply: replyChan,
}:
case <-s.quit:
return nil
}
// Wait for the result here.
select {
case reply := <-replyChan:
peers := make([]*peer.Peer, 0, len(reply))
for _, sp := range reply {
peers = append(peers, sp.Peer)
}
return peers
case <-s.quit:
return nil
}
}
// handleQuery is the central handler for all queries and commands from other
// goroutines related to peer state.
func (s *server) handleQuery(state *peerState, querymsg interface{}) {