diff --git a/CHANGELOG.md b/CHANGELOG.md index f946d67f..cef2eba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Tip +* Fix msgReader.rxMsg bug when msgReader already has error * Add support for database/sql.Scanner and database/sql/driver.Valuer interfaces * Go float64 can no longer be encoded to a PostgreSQL float4 * Add ConnPool.Reset method diff --git a/msg_reader.go b/msg_reader.go index 9098c20a..4c2d9805 100644 --- a/msg_reader.go +++ b/msg_reader.go @@ -32,9 +32,9 @@ func (r *msgReader) fatal(err error) { } // rxMsg reads the type and size of the next message. -func (r *msgReader) rxMsg() (t byte, err error) { +func (r *msgReader) rxMsg() (byte, error) { if r.err != nil { - return 0, err + return 0, r.err } if r.msgBytesRemaining > 0 { @@ -46,7 +46,7 @@ func (r *msgReader) rxMsg() (t byte, err error) { } b := r.buf[0:5] - _, err = io.ReadFull(r.reader, b) + _, err := io.ReadFull(r.reader, b) r.msgBytesRemaining = int32(binary.BigEndian.Uint32(b[1:])) - 4 return b[0], err }