diff --git a/metadaptb.go b/metadaptb.go index fdf2ba2..867dedb 100644 --- a/metadaptb.go +++ b/metadaptb.go @@ -2,6 +2,7 @@ package hopp import "io" import "net" +import "errors" import "context" import "git.tebibyte.media/sashakoshka/hopp/tape" @@ -148,7 +149,10 @@ func decodeMessageB( ) { headerBuffer := [10]byte { } _, err = io.ReadFull(reader, headerBuffer[:]) - if err != nil { return 0, 0, nil, err } + if err != nil { + if errors.Is(err, io.EOF) { return 0, 0, nil, io.ErrUnexpectedEOF } + return 0, 0, nil, err + } method, err = tape.DecodeI16[uint16](headerBuffer[:2]) if err != nil { return 0, 0, nil, err } length, err := tape.DecodeI64[uint64](headerBuffer[2:10]) diff --git a/metadaptb_test.go b/metadaptb_test.go index f40f25a..cad341f 100644 --- a/metadaptb_test.go +++ b/metadaptb_test.go @@ -53,9 +53,7 @@ func TestDecodeMessageB(test *testing.T) { func TestDecodeMessageBErr(test *testing.T) { _, _, _, err := decodeMessageB(bytes.NewReader([]byte { - 0x6B, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x06, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x6B, 0x12, 0x00, 0x00, 0x00, 0x00, }), defaultSizeLimit) if !errors.Is(err, io.ErrUnexpectedEOF) { test.Fatalf("wrong error: %v", err)