From 36b887f37273017bcb7d6403c981500c793e9f27 Mon Sep 17 00:00:00 2001 From: Unbewohnte Date: Sat, 31 Dec 2022 09:35:58 +0300 Subject: [PATCH] Fixed allowed domains being broken when an empty string was specified in the configuration file --- src/main.go | 21 +++++++++++++++++---- src/worker/worker.go | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main.go b/src/main.go index d6e56b9..31d22a9 100644 --- a/src/main.go +++ b/src/main.go @@ -28,6 +28,7 @@ import ( "os" "os/signal" "path/filepath" + "strings" "time" "unbewohnte/wecr/config" "unbewohnte/wecr/logger" @@ -175,7 +176,12 @@ func main() { return } - for index, blacklistedDomain := range conf.BlacklistedDomains { + var sanitizedBlacklistedDomains []string + for _, blacklistedDomain := range conf.BlacklistedDomains { + if strings.TrimSpace(blacklistedDomain) == "" { + continue + } + parsedURL, err := url.Parse(blacklistedDomain) if err != nil { logger.Warning("Failed to parse blacklisted \"%s\": %s", blacklistedDomain, err) @@ -188,10 +194,16 @@ func main() { continue } - conf.BlacklistedDomains[index] = parsedURL.Host + sanitizedBlacklistedDomains = append(sanitizedBlacklistedDomains, parsedURL.Host) } + conf.BlacklistedDomains = sanitizedBlacklistedDomains + + var sanitizedAllowedDomains []string + for _, allowedDomain := range conf.AllowedDomains { + if strings.TrimSpace(allowedDomain) == "" { + continue + } - for index, allowedDomain := range conf.AllowedDomains { parsedURL, err := url.Parse(allowedDomain) if err != nil { logger.Warning("Failed to parse allowed \"%s\": %s", allowedDomain, err) @@ -204,8 +216,9 @@ func main() { continue } - conf.AllowedDomains[index] = parsedURL.Host + sanitizedAllowedDomains = append(sanitizedAllowedDomains, parsedURL.Host) } + conf.AllowedDomains = sanitizedAllowedDomains if conf.Depth <= 0 { conf.Depth = 1 diff --git a/src/worker/worker.go b/src/worker/worker.go index 2e0e96d..7476728 100644 --- a/src/worker/worker.go +++ b/src/worker/worker.go @@ -93,13 +93,13 @@ func (w *Worker) Work() { return } - var skip bool = false pageURL, err := url.Parse(job.URL) if err != nil { logger.Error("Failed to parse URL \"%s\" to get hostname: %s", job.URL, err) continue } + var skip bool = false // see if the domain is allowed and is not blacklisted if len(w.Conf.AllowedDomains) > 0 { skip = true