Compare commits
2 Commits
f6fe9c307d
...
47645a8fce
Author | SHA1 | Date | |
---|---|---|---|
47645a8fce | |||
87c4ac8efb |
@ -2,6 +2,7 @@ package hopp
|
||||
|
||||
import "io"
|
||||
import "net"
|
||||
import "errors"
|
||||
import "context"
|
||||
import "git.tebibyte.media/sashakoshka/hopp/tape"
|
||||
|
||||
@ -126,7 +127,7 @@ type Stream interface {
|
||||
}
|
||||
|
||||
func encodeMessageB(writer io.Writer, sizeLimit int64, method uint16, data []byte) error {
|
||||
if len(data) > int(sizeLimit) {
|
||||
if int64(len(data)) > sizeLimit {
|
||||
return ErrPayloadTooLarge
|
||||
}
|
||||
buffer := make([]byte, 10 + len(data))
|
||||
@ -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])
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user