diff --git a/internal/dnsforward/http.go b/internal/dnsforward/http.go index 9798dfb7..0326c676 100644 --- a/internal/dnsforward/http.go +++ b/internal/dnsforward/http.go @@ -309,14 +309,7 @@ func (s *Server) setConfig(dc dnsConfig) (restart bool) { } } - if dc.RebindingProtectionEnabled != nil { - s.conf.RebindingProtectionEnabled = *dc.RebindingProtectionEnabled - } - - if dc.RebindingAllowedHosts != nil { - s.conf.RebindingAllowedHosts = *dc.RebindingAllowedHosts - restart = true - } + restart = restart || s.setRebindingConfig(dc) s.Unlock() s.conf.ConfigModified() return restart diff --git a/internal/dnsforward/rebind.go b/internal/dnsforward/rebind.go index 1215e095..647dc723 100644 --- a/internal/dnsforward/rebind.go +++ b/internal/dnsforward/rebind.go @@ -157,6 +157,21 @@ func processRebindingFilteringAfterResponse(ctx *dnsContext) int { return resultDone } +func (s *Server) setRebindingConfig(dc dnsConfig) bool { + restart := false + + if dc.RebindingProtectionEnabled != nil { + s.conf.RebindingProtectionEnabled = *dc.RebindingProtectionEnabled + } + + if dc.RebindingAllowedHosts != nil { + s.conf.RebindingAllowedHosts = *dc.RebindingAllowedHosts + restart = true + } + + return restart +} + func (s *Server) preventRebindResponse(ctx *dnsContext) (*dnsfilter.Result, error) { d := ctx.proxyCtx