From 42ccb3e39a5469bfdf7c8be81dca1c65c2eda082 Mon Sep 17 00:00:00 2001 From: Patrick Pacher Date: Mon, 20 Apr 2020 08:25:34 +0200 Subject: [PATCH] Small changes based on review comments --- intel/entity.go | 11 +++++++++++ nameserver/nameserver.go | 3 ++- profile/config.go | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/intel/entity.go b/intel/entity.go index 39a3765c..f01b53cb 100644 --- a/intel/entity.go +++ b/intel/entity.go @@ -273,6 +273,8 @@ func (e *Entity) getDomainLists() { domains = domainsToInspect } + domains = makeDistinct(domains) + for _, d := range domains { log.Tracef("intel: loading domain list for %s", d) list, err := filterlists.LookupDomain(d) @@ -441,3 +443,12 @@ func buildLookupMap(l []string) filterlists.LookupMap { return m } + +func makeDistinct(slice []string) []string { + lm := buildLookupMap(slice) + result := make([]string, 0, len(lm)) + for key := range lm { + result = append(result, key) + } + return result +} diff --git a/nameserver/nameserver.go b/nameserver/nameserver.go index 013fc749..a30d933c 100644 --- a/nameserver/nameserver.go +++ b/nameserver/nameserver.go @@ -2,6 +2,7 @@ package nameserver import ( "context" + "errors" "fmt" "net" "strings" @@ -247,7 +248,7 @@ func handleRequest(ctx context.Context, w dns.ResponseWriter, query *dns.Msg) er // TODO: analyze nxdomain requests, malware could be trying DGA-domains tracer.Warningf("nameserver: %s requested %s%s: %s", conn.Process(), q.FQDN, q.QType, err) - if _, ok := err.(*resolver.BlockedUpstreamError); ok { + if errors.Is(err, &resolver.BlockedUpstreamError{}) { conn.Block(err.Error()) } else { conn.Failed("failed to resolve: " + err.Error()) diff --git a/profile/config.go b/profile/config.go index 1890afa6..8842530e 100644 --- a/profile/config.go +++ b/profile/config.go @@ -192,6 +192,7 @@ Examples: ExternalOptType: "security level", DefaultValue: status.SecurityLevelsAll, ValidationRegex: "^(7|6|4)$", + ExpertiseLevel: config.ExpertiseLevelExpert, }) if err != nil { return err