internal/middleware: use Godoc header in non-legacy quota

Change-Id: I6fe7608017e48404967077031114651835884ce5
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/277813
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Julie Qiu <julie@golang.org>
diff --git a/internal/middleware/quota.go b/internal/middleware/quota.go
index effcf77..3afa3e2 100644
--- a/internal/middleware/quota.go
+++ b/internal/middleware/quota.go
@@ -151,7 +151,11 @@
 					return
 				}
 			}
-			blocked, reason := enforceQuota(ctx, client, settings.QPS, r.Header.Get("X-Forwarded-For"), settings.HMACKey)
+			header := r.Header.Get("X-Godoc-Forwarded-For")
+			if header == "" {
+				header = r.Header.Get("X-Forwarded-For")
+			}
+			blocked, reason := enforceQuota(ctx, client, settings.QPS, header, settings.HMACKey)
 			recordQuotaMetric(ctx, reason)
 			if blocked && settings.RecordOnly != nil && !*settings.RecordOnly {
 				const tmr = http.StatusTooManyRequests