[gcsproxy] Pass lock by reference instead of value
This is what a vscode extension caught and complained about, appearing
to catch a bug that would have prevented the lock from doing its job.
Bug: 48652
Change-Id: I56a65cb19ac38c34f553baded9a5e9bb624a418c
diff --git a/cmd/gcsproxy/main.go b/cmd/gcsproxy/main.go
index eda437b..efb52b8 100644
--- a/cmd/gcsproxy/main.go
+++ b/cmd/gcsproxy/main.go
@@ -124,12 +124,12 @@
return err
}
- var limiters sync.Map
+ limiters := new(sync.Map)
for _, addr := range allowedAddrs {
limiters.Store(addr, newLimiter())
}
- redirect := redirectHandler{
+ redirect := &redirectHandler{
client: client,
limiters: limiters,
}
@@ -171,10 +171,10 @@
type redirectHandler struct {
client *http.Client
// limiters is a map of string: *rate.Limiter.
- limiters sync.Map
+ limiters *sync.Map
}
-func (h redirectHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
+func (h *redirectHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
if req == nil {
http.Error(w, "cannot handle nil request", http.StatusInternalServerError) // = 501
return