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)