gddo-server: do not tee 4xx and 5xx requests
If a request returns a 4xx or 5xx on godoc.org, do not tee the request.
Change-Id: Icf71945699f639627449822a58cd03040b164cfb
Reviewed-on: https://go-review.googlesource.com/c/gddo/+/287233
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Trust: Julie Qiu <julie@golang.org>
diff --git a/gddo-server/server.go b/gddo-server/server.go
index 40c1954..862e085 100644
--- a/gddo-server/server.go
+++ b/gddo-server/server.go
@@ -1078,13 +1078,17 @@
func (s *server) teeRequestToPkgGoDev(r *http.Request, latency time.Duration, status int) {
if shouldRedirectURL(r, s.configPoller) {
- log.Printf("shouldRedirectToPkgGoDev(%q, %q)= true: not teeing request because it is redirected to pkg.go.dev", r.URL.Host, r.URL.Path)
+ log.Printf("s.teeRequestToPkgGoDev: shouldRedirectToPkgGoDev(%q, %q)= true: not teeing request because it is redirected to pkg.go.dev", r.URL.Host, r.URL.Path)
return
}
if !shouldTeeRequest(r.URL.Path) {
log.Printf("s.teeRequestToPkgGoDev: shouldTeeRequest(%q): not teeing request", r.URL.Path)
return
}
+ if status >= 400 {
+ log.Printf("s.teeRequestToPkgGoDev: not teeing request for %q because godoc.org returned a status >= 400", r.URL.Path)
+ return
+ }
val := os.Getenv("GDDO_TEE_REQUESTS_TO_PKGGODEV")
if strings.ToLower(val) != "true" {
log.Printf("s.teeRequestToPkgGoDev: not sending requests to pkg.go.dev (GDDO_TEE_REQUESTS_TO_PKGGODEV = %q)", val)