From 2b6ab4368af67c0e0337302e05b204c8f0f2c76e Mon Sep 17 00:00:00 2001 From: tidwall Date: Sat, 24 Sep 2022 07:24:04 -0700 Subject: [PATCH] Fix hang on empty response --- internal/server/server.go | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/internal/server/server.go b/internal/server/server.go index 66a116a1..50c24353 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -947,7 +947,7 @@ func (s *Server) handleInputCommand(client *Client, msg *Message) error { } } res = NOMessage - err = writeErr("timeout") + err = errTimeout } }() } @@ -975,23 +975,17 @@ func (s *Server) handleInputCommand(client *Client, msg *Message) error { return err } } - if !isRespValueEmptyString(res) { - var resStr string - resStr, err := serializeOutput(res) - if err != nil { - return err - } - if err := writeOutput(resStr); err != nil { - return err - } + var resStr string + resStr, err = serializeOutput(res) + if err != nil { + return err + } + if err := writeOutput(resStr); err != nil { + return err } return nil } -func isRespValueEmptyString(val resp.Value) bool { - return !val.IsNull() && (val.Type() == resp.SimpleString || val.Type() == resp.BulkString) && len(val.Bytes()) == 0 -} - func randomKey(n int) string { b := make([]byte, n) nn, err := rand.Read(b)