From 4fd652196bfd442a146072a9d448627809314f9f Mon Sep 17 00:00:00 2001 From: "Masih H. Derkani" Date: Mon, 23 Jan 2023 15:12:21 +0000 Subject: [PATCH] Use `PUT` as method to insert provider records Change the implementation of HTTP delegated routing provider records to match the IPIP-337 specification. The specification was changed to use `PUT`. Close request body after decoding when handling provide. --- routing/http/client/client.go | 2 +- routing/http/server/server.go | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/routing/http/client/client.go b/routing/http/client/client.go index 72ab5a102..34f90eb6a 100644 --- a/routing/http/client/client.go +++ b/routing/http/client/client.go @@ -211,7 +211,7 @@ func (c *client) provideSignedBitswapRecord(ctx context.Context, bswp *types.Wri return 0, err } - httpReq, err := http.NewRequestWithContext(ctx, http.MethodPost, url, bytes.NewBuffer(b)) + httpReq, err := http.NewRequestWithContext(ctx, http.MethodPut, url, bytes.NewBuffer(b)) if err != nil { return 0, err } diff --git a/routing/http/server/server.go b/routing/http/server/server.go index 3ea6e4821..ed67423bd 100644 --- a/routing/http/server/server.go +++ b/routing/http/server/server.go @@ -57,8 +57,8 @@ func Handler(svc ContentRouter, opts ...serverOption) http.Handler { } r := mux.NewRouter() - r.HandleFunc(ProvidePath, server.provide).Methods("POST") - r.HandleFunc(FindProvidersPath, server.findProviders).Methods("GET") + r.HandleFunc(ProvidePath, server.provide).Methods(http.MethodPut) + r.HandleFunc(FindProvidersPath, server.findProviders).Methods(http.MethodGet) return r } @@ -70,6 +70,7 @@ type server struct { func (s *server) provide(w http.ResponseWriter, httpReq *http.Request) { req := types.WriteProvidersRequest{} err := json.NewDecoder(httpReq.Body).Decode(&req) + _ = httpReq.Body.Close() if err != nil { writeErr(w, "Provide", http.StatusBadRequest, fmt.Errorf("invalid request: %w", err)) return