From 1099a57945481439b91f9498512521458bcc84af Mon Sep 17 00:00:00 2001 From: Jaden Weiss Date: Thu, 4 Jun 2020 13:40:34 -0400 Subject: [PATCH] fix pretty printing of active queries list to handle special characters and multiline queries --- http/handler.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/http/handler.go b/http/handler.go index 654eea644..f6e0ac001 100644 --- a/http/handler.go +++ b/http/handler.go @@ -880,24 +880,24 @@ func (h *Handler) handleGetActiveQueries(w http.ResponseWriter, r *http.Request) w.Header().Set("Content-Type", rtype) switch rtype { case "text/plain": - lines := make([]string, len(queries)) + durations := make([]string, len(queries)) for i, q := range queries { - lines[i] = q.Age.String() + durations[i] = q.Age.String() } var maxlen int - for _, l := range lines { + for _, l := range durations { if len(l) > maxlen { maxlen = len(l) } } - spaces := strings.Repeat(" ", maxlen+2) - for i, l := range lines { - lines[i] += spaces[len(l):] - } for i, q := range queries { - lines[i] += q.Query + _, err := fmt.Fprintf(w, "%*s%q\n", -(maxlen + 2), durations[i], q.Query) + if err != nil { + h.logger.Printf("sending GetActiveQueries response: %s", err) + return + } } - if _, err := w.Write([]byte(strings.Join(lines, "\n") + "\n")); err != nil { + if _, err := w.Write([]byte{'\n'}); err != nil { h.logger.Printf("sending GetActiveQueries response: %s", err) } case "application/json":