Skip to content

Commit cf58bfe

Browse files
committed
dnscrypt/servers: thread-safe len() and getAll() apis
1 parent 37b26a3 commit cf58bfe

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

intra/dnscrypt/servers.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,26 @@ func newServersInfo() ServersInfo {
7979
}
8080
}
8181

82+
func (serversInfo *ServersInfo) len() int {
83+
serversInfo.RLock()
84+
defer serversInfo.RUnlock()
85+
86+
return len(serversInfo.registeredServers)
87+
}
88+
89+
func (serversInfo *ServersInfo) getAll() []*serverinfo {
90+
serversInfo.RLock()
91+
defer serversInfo.RUnlock()
92+
93+
servers := make([]*serverinfo, 0, len(serversInfo.inner))
94+
for _, si := range serversInfo.inner {
95+
if si != nil {
96+
servers = append(servers, si)
97+
}
98+
}
99+
return servers
100+
}
101+
82102
func (serversInfo *ServersInfo) getOne() (serverInfo *serverinfo) {
83103
serversInfo.RLock()
84104
defer serversInfo.RUnlock()

0 commit comments

Comments
 (0)