diff --git a/home/blocked_services.go b/home/blocked_services.go index cede4d4d..5c14499d 100644 --- a/home/blocked_services.go +++ b/home/blocked_services.go @@ -135,6 +135,12 @@ func initServices() { } } +// Return TRUE if a blocked service name is known +func blockedSvcKnown(s string) bool { + _, ok := serviceRules[s] + return ok +} + // ApplyBlockedServices - set blocked services settings for this DNS request func ApplyBlockedServices(setts *dnsfilter.RequestFilteringSettings, list []string) { setts.ServicesRules = []dnsfilter.ServiceEntry{} diff --git a/home/clients.go b/home/clients.go index 0de73af7..1c2b795b 100644 --- a/home/clients.go +++ b/home/clients.go @@ -140,11 +140,18 @@ func (clients *clientsContainer) addFromConfig(objects []clientObject) { SafeBrowsingEnabled: cy.SafeBrowsingEnabled, UseOwnBlockedServices: !cy.UseGlobalBlockedServices, - BlockedServices: cy.BlockedServices, Upstreams: cy.Upstreams, } + for _, s := range cy.BlockedServices { + if !blockedSvcKnown(s) { + log.Debug("Clients: skipping unknown blocked-service '%s'", s) + continue + } + cli.BlockedServices = append(cli.BlockedServices, s) + } + for _, t := range cy.Tags { if !clients.tagKnown(t) { log.Debug("Clients: skipping unknown tag '%s'", t) diff --git a/home/config.go b/home/config.go index dfcc6842..fb28a8ba 100644 --- a/home/config.go +++ b/home/config.go @@ -233,6 +233,16 @@ func parseConfig() error { return err } + bsvcs := []string{} + for _, s := range config.DNS.BlockedServices { + if !blockedSvcKnown(s) { + log.Debug("skipping unknown blocked-service '%s'", s) + continue + } + bsvcs = append(bsvcs, s) + } + config.DNS.BlockedServices = bsvcs + if !checkFiltersUpdateIntervalHours(config.DNS.FiltersUpdateIntervalHours) { config.DNS.FiltersUpdateIntervalHours = 24 }