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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user