diff --git a/metrics.go b/metrics.go index b4f12b6..0e5ef27 100644 --- a/metrics.go +++ b/metrics.go @@ -60,7 +60,9 @@ func serveMetrics() { })) http.Handle("/chanz", http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { slog.Debug("display channelz data on /chanz") - w.Write([]byte(grpc.UpdateMetrics(mClient))) + if _, err := w.Write([]byte(grpc.UpdateMetrics(mClient))); err != nil { + slog.Error("failed to write channelz response", "error", err) + } })) //nolint:gosec // Ignoring G114 if err := http.ListenAndServe(*metricFlag, nil); err != nil { diff --git a/routes.go b/routes.go index 454ae8f..35b2669 100644 --- a/routes.go +++ b/routes.go @@ -57,7 +57,9 @@ func DisplayRoutes(w http.ResponseWriter, r *http.Request) { // We still report it as a 404 w.WriteHeader(http.StatusNotFound) - w.Write([]byte(strings.Join(filteredRoutes, "\n"))) + if _, err := w.Write([]byte(strings.Join(filteredRoutes, "\n"))); err != nil { + slog.Error("failed to write routes response", "error", err) + } } func SetupRoutes(r *chi.Mux, client *grpc.Client) { diff --git a/routes_handler.go b/routes_handler.go index 3a9132c..9ccb2b3 100644 --- a/routes_handler.go +++ b/routes_handler.go @@ -145,7 +145,9 @@ func writeBeacon(w http.ResponseWriter, beacon *grpc.HexBeacon, nextTime int64, } w.WriteHeader(http.StatusOK) - w.Write(json) + if _, err := w.Write(json); err != nil { + slog.Error("failed to write beacon response", "error", err) + } } func GetLatest(c *grpc.Client, isV2 bool) func(http.ResponseWriter, *http.Request) { @@ -200,7 +202,9 @@ func GetChains(c *grpc.Client) func(http.ResponseWriter, *http.Request) { return } - w.Write(json) + if _, err := w.Write(json); err != nil { + slog.Error("failed to write chains response", "error", err) + } } } @@ -261,7 +265,9 @@ func GetHealth(c *grpc.Client) func(http.ResponseWriter, *http.Request) { return } - w.Write(json) + if _, err := w.Write(json); err != nil { + slog.Error("[GetHealth] failed to write health response", "error", err) + } } } @@ -280,7 +286,9 @@ func GetBeaconIds(c *grpc.Client) func(http.ResponseWriter, *http.Request) { http.Error(w, "Failed to produce beacon ids", http.StatusInternalServerError) return } - w.Write(json) + if _, err := w.Write(json); err != nil { + slog.Error("[GetBeaconIds] failed to write beacon ids response", "error", err) + } } } @@ -307,7 +315,9 @@ func GetInfoV1(c *grpc.Client) func(http.ResponseWriter, *http.Request) { return } - w.Write(json) + if _, err := w.Write(json); err != nil { + slog.Error("[GetInfoV1] failed to write chain info response", "error", err) + } } } @@ -334,7 +344,9 @@ func GetInfoV2(c *grpc.Client) func(http.ResponseWriter, *http.Request) { return } - w.Write(json) + if _, err := w.Write(json); err != nil { + slog.Error("[GetInfoV2] failed to write chain info response", "error", err) + } } }