From 120e32c1eb96aea60bd84f38244e6466705a38d2 Mon Sep 17 00:00:00 2001 From: Dimitri Herzog Date: Tue, 7 Mar 2023 14:23:02 +0100 Subject: [PATCH] feat: client name in clientGroupsBlock should not be case-sensitive (#894) (#913) --- resolver/blocking_resolver.go | 2 +- resolver/blocking_resolver_test.go | 4 ++-- util/common.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resolver/blocking_resolver.go b/resolver/blocking_resolver.go index 15b63fd0..1115b563 100644 --- a/resolver/blocking_resolver.go +++ b/resolver/blocking_resolver.go @@ -118,7 +118,7 @@ func NewBlockingResolver( cgb := make(map[string][]string, len(cfg.ClientGroupsBlock)) for identifier, cfgGroups := range cfg.ClientGroupsBlock { - for _, ipart := range strings.Split(identifier, ",") { + for _, ipart := range strings.Split(strings.ToLower(identifier), ",") { existingGroups, found := cgb[ipart] if found { cgb[ipart] = append(existingGroups, cfgGroups...) diff --git a/resolver/blocking_resolver_test.go b/resolver/blocking_resolver_test.go index ce60c2c8..5c2e68c6 100644 --- a/resolver/blocking_resolver_test.go +++ b/resolver/blocking_resolver_test.go @@ -178,7 +178,7 @@ var _ = Describe("BlockingResolver", Label("blockingResolver"), func() { "defaultGroup": {defaultGroupFile.Path}, }, ClientGroupsBlock: map[string][]string{ - "client1": {"gr1"}, + "Client1": {"gr1"}, "client2,client3": {"gr1"}, "client3": {"gr2"}, "192.168.178.55": {"gr1"}, @@ -324,7 +324,7 @@ var _ = Describe("BlockingResolver", Label("blockingResolver"), func() { When("Client has multiple names and for each name a client group block definition exists", func() { It("should block query if domain is in one group", func() { - Expect(sut.Resolve(newRequestWithClient("domain1.com.", A, "1.2.1.2", "client1", "altName"))). + Expect(sut.Resolve(newRequestWithClient("domain1.com.", A, "1.2.1.2", "client1", "altname"))). Should( SatisfyAll( BeDNSRecord("domain1.com.", A, "0.0.0.0"), diff --git a/util/common.go b/util/common.go index bba5bc4c..b794bd9a 100644 --- a/util/common.go +++ b/util/common.go @@ -196,7 +196,7 @@ func CidrContainsIP(cidr string, ip net.IP) bool { // ClientNameMatchesGroupName checks if a group with optional wildcards contains a client name func ClientNameMatchesGroupName(group, clientName string) bool { - match, _ := filepath.Match(group, clientName) + match, _ := filepath.Match(strings.ToLower(group), strings.ToLower(clientName)) return match }