diff options
author | Alexander Pevzner <pzz@apevzner.com> | 2020-01-13 21:40:06 +0300 |
---|---|---|
committer | Alexander Pevzner <pzz@apevzner.com> | 2020-01-13 21:40:06 +0300 |
commit | d253af206ef70d7085dda9106e6aa7a902b39c47 (patch) | |
tree | 4aa5a0051f33cc187acb8b4317a1ccdc702b2fe2 | |
parent | 51dea516d0d88df617eed5bbdc2ccf19c72be6ff (diff) |
Fixed decoder, if io.Reader returns n > 0 and err != nil in a same time
-rw-r--r-- | decoder.go | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -304,13 +304,14 @@ func (md *messageDecoder) read(data []byte) error { for len(data) > 0 { n, err := md.in.Read(data) - if err != nil { + if n > 0 { + md.cnt += n + data = data[n:] + } else if err != nil { md.off = md.cnt return err } - md.cnt += n - data = data[n:] } return nil |