From 64611af7985f98a0cbf650eb7bef16a5f215e0a3 Mon Sep 17 00:00:00 2001 From: Josh Baker Date: Sat, 20 Aug 2016 09:57:29 -0700 Subject: [PATCH] fixed test --- logo.png | Bin 0 -> 24104 bytes redcon.go | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 logo.png diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ee336156d9c76d8182916b7e87fd7fcc51995899 GIT binary patch literal 24104 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 literal 0 HcmV?d00001 diff --git a/redcon.go b/redcon.go index 74a9c37..6f9b1a8 100644 --- a/redcon.go +++ b/redcon.go @@ -142,15 +142,15 @@ func (c *conn) RemoteAddr() string { // Reader represents a RESP command reader. type reader struct { - r *net.TCPConn // base reader - b []byte // unprocessed bytes - a []byte // static read buffer + r io.Reader // base reader + b []byte // unprocessed bytes + a []byte // static read buffer } const buflen = 1024 * 8 // NewReader returns a RESP command reader. -func newReader(r *net.TCPConn) *reader { +func newReader(r io.Reader) *reader { return &reader{ r: r, a: make([]byte, buflen),