From 66458204088f96f337f3a7e3129fe44dafd4e448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Musab=20G=C3=BCltekin?= Date: Sat, 16 Nov 2019 20:34:09 +0300 Subject: [PATCH] Added logging on allowed domains middleware and duplicate requests --- middleware/allowed_domains.go | 7 ++++++- middleware/duplicate_requests.go | 9 +++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/middleware/allowed_domains.go b/middleware/allowed_domains.go index 88e1216..f61dfc1 100644 --- a/middleware/allowed_domains.go +++ b/middleware/allowed_domains.go @@ -3,16 +3,21 @@ package middleware import ( "github.com/geziyor/geziyor/client" "github.com/geziyor/geziyor/internal" + "log" + "sync" ) // AllowedDomains checks for request host if it exists in AllowedDomains type AllowedDomains struct { AllowedDomains []string + logOnlyOnce sync.Map } func (a *AllowedDomains) ProcessRequest(r *client.Request) { if len(a.AllowedDomains) != 0 && !internal.Contains(a.AllowedDomains, r.Host) { - //log.Printf("Domain not allowed: %s\n", req.Host) + if _, logged := a.logOnlyOnce.LoadOrStore(r.Host, struct{}{}); !logged { + log.Printf("Domain not allowed: %s\n", r.Host) + } r.Cancel() return } diff --git a/middleware/duplicate_requests.go b/middleware/duplicate_requests.go index a120083..727562b 100644 --- a/middleware/duplicate_requests.go +++ b/middleware/duplicate_requests.go @@ -2,6 +2,7 @@ package middleware import ( "github.com/geziyor/geziyor/client" + "log" "sync" ) @@ -9,12 +10,16 @@ import ( type DuplicateRequests struct { RevisitEnabled bool visitedURLs sync.Map + logOnlyOnce sync.Map } func (a *DuplicateRequests) ProcessRequest(r *client.Request) { if !a.RevisitEnabled && r.Request.Method == "GET" { - if _, visited := a.visitedURLs.LoadOrStore(r.Request.URL.String(), struct{}{}); visited { - //log.Printf("URL already visited %s\n") + requestURL := r.Request.URL.String() + if _, visited := a.visitedURLs.LoadOrStore(requestURL, struct{}{}); visited { + if _, logged := a.logOnlyOnce.LoadOrStore(requestURL, struct{}{}); !logged { + log.Printf("URL already visited %s\n", requestURL) + } r.Cancel() } }