- DNS: fix slow response to /status and /access/list requests

This commit is contained in:
Simon Zolin 2019-12-17 13:09:03 +03:00
parent 04de9d0f7b
commit 8521635f63
4 changed files with 7 additions and 7 deletions

View File

@ -119,13 +119,13 @@ type accessListJSON struct {
} }
func (s *Server) handleAccessList(w http.ResponseWriter, r *http.Request) { func (s *Server) handleAccessList(w http.ResponseWriter, r *http.Request) {
s.Lock() s.RLock()
j := accessListJSON{ j := accessListJSON{
AllowedClients: s.conf.AllowedClients, AllowedClients: s.conf.AllowedClients,
DisallowedClients: s.conf.DisallowedClients, DisallowedClients: s.conf.DisallowedClients,
BlockedHosts: s.conf.BlockedHosts, BlockedHosts: s.conf.BlockedHosts,
} }
s.Unlock() s.RUnlock()
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
err := json.NewEncoder(w).Encode(j) err := json.NewEncoder(w).Encode(j)

View File

@ -94,7 +94,7 @@ func stringArrayDup(a []string) []string {
// WriteDiskConfig - write configuration // WriteDiskConfig - write configuration
func (s *Server) WriteDiskConfig(c *FilteringConfig) { func (s *Server) WriteDiskConfig(c *FilteringConfig) {
s.Lock() s.RLock()
sc := s.conf.FilteringConfig sc := s.conf.FilteringConfig
*c = sc *c = sc
c.RatelimitWhitelist = stringArrayDup(sc.RatelimitWhitelist) c.RatelimitWhitelist = stringArrayDup(sc.RatelimitWhitelist)
@ -103,7 +103,7 @@ func (s *Server) WriteDiskConfig(c *FilteringConfig) {
c.DisallowedClients = stringArrayDup(sc.DisallowedClients) c.DisallowedClients = stringArrayDup(sc.DisallowedClients)
c.BlockedHosts = stringArrayDup(sc.BlockedHosts) c.BlockedHosts = stringArrayDup(sc.BlockedHosts)
c.UpstreamDNS = stringArrayDup(sc.UpstreamDNS) c.UpstreamDNS = stringArrayDup(sc.UpstreamDNS)
s.Unlock() s.RUnlock()
} }
// FilteringConfig represents the DNS filtering configuration of AdGuard Home // FilteringConfig represents the DNS filtering configuration of AdGuard Home

2
go.mod
View File

@ -3,7 +3,7 @@ module github.com/AdguardTeam/AdGuardHome
go 1.13 go 1.13
require ( require (
github.com/AdguardTeam/dnsproxy v0.23.2 github.com/AdguardTeam/dnsproxy v0.23.3
github.com/AdguardTeam/golibs v0.3.0 github.com/AdguardTeam/golibs v0.3.0
github.com/AdguardTeam/urlfilter v0.7.0 github.com/AdguardTeam/urlfilter v0.7.0
github.com/NYTimes/gziphandler v1.1.1 github.com/NYTimes/gziphandler v1.1.1

4
go.sum
View File

@ -1,5 +1,5 @@
github.com/AdguardTeam/dnsproxy v0.23.2 h1:HbBzoe9Pssj4UjvbeBUPHz7cpCt/7/LpVKu4olhPcKk= github.com/AdguardTeam/dnsproxy v0.23.3 h1:RzI9M0sX99t7qnlikvKTPW25sCFzgfBStxUJ+2z1KQI=
github.com/AdguardTeam/dnsproxy v0.23.2/go.mod h1:2qy8rpdfBzKgMPxkHmPdaNK4XZJ322v4KtVGI8s8Bn0= github.com/AdguardTeam/dnsproxy v0.23.3/go.mod h1:2qy8rpdfBzKgMPxkHmPdaNK4XZJ322v4KtVGI8s8Bn0=
github.com/AdguardTeam/golibs v0.2.4 h1:GUssokegKxKF13K67Pgl0ZGwqHjNN6X7sep5ik6ORdY= github.com/AdguardTeam/golibs v0.2.4 h1:GUssokegKxKF13K67Pgl0ZGwqHjNN6X7sep5ik6ORdY=
github.com/AdguardTeam/golibs v0.2.4/go.mod h1:R3M+mAg3nWG4X4Hsag5eef/TckHFH12ZYhK7AzJc8+U= github.com/AdguardTeam/golibs v0.2.4/go.mod h1:R3M+mAg3nWG4X4Hsag5eef/TckHFH12ZYhK7AzJc8+U=
github.com/AdguardTeam/golibs v0.3.0 h1:1zO8ulGEOdXDDM++Ap4sYfTsT/Z4tZBZtiWSA4ykcOU= github.com/AdguardTeam/golibs v0.3.0 h1:1zO8ulGEOdXDDM++Ap4sYfTsT/Z4tZBZtiWSA4ykcOU=