Evan Huus 12 роки тому
батько
коміт
84d5cfc734
5 змінених файлів з 21 додано та 21 видалено
  1. 3 3
      message.go
  2. 1 1
      packet_crcs.go
  3. 1 1
      packet_lengths.go
  4. 2 2
      prep_encoder.go
  5. 14 14
      real_decoder.go

+ 3 - 3
message.go

@@ -67,7 +67,7 @@ func (m *message) decode(pd packetDecoder) (err error) {
 		return err
 	}
 	if format != message_format {
-		return DecodingError{}
+		return DecodingError("Message format mismatch.")
 	}
 
 	attribute, err := pd.getInt8()
@@ -91,7 +91,7 @@ func (m *message) decode(pd packetDecoder) (err error) {
 		// nothing to do
 	case COMPRESSION_GZIP:
 		if m.value == nil {
-			return DecodingError{"Nil contents cannot be compressed."}
+			return DecodingError("Nil contents cannot be compressed.")
 		}
 		reader, err := gzip.NewReader(bytes.NewReader(*m.value))
 		if err != nil {
@@ -105,7 +105,7 @@ func (m *message) decode(pd packetDecoder) (err error) {
 	case COMPRESSION_SNAPPY:
 		// TODO
 	default:
-		return DecodingError{"Unknown compression codec."}
+		return DecodingError("Unknown compression codec.")
 	}
 
 	err = pd.pop()

+ 1 - 1
packet_crcs.go

@@ -38,7 +38,7 @@ func (c *crc32Decoder) check(curOffset int, buf []byte) error {
 	crc := crc32.ChecksumIEEE(buf[c.startOffset+4 : curOffset])
 
 	if crc != binary.BigEndian.Uint32(buf[c.startOffset:]) {
-		return DecodingError{}
+		return DecodingError("CRC did not match.")
 	}
 
 	return nil

+ 1 - 1
packet_lengths.go

@@ -32,7 +32,7 @@ func (l *length32Decoder) reserveLength() int {
 
 func (l *length32Decoder) check(curOffset int, buf []byte) error {
 	if uint32(curOffset-l.startOffset-4) != binary.BigEndian.Uint32(buf[l.startOffset:]) {
-		return DecodingError{}
+		return DecodingError("Packet length did not match.")
 	}
 
 	return nil

+ 2 - 2
prep_encoder.go

@@ -48,7 +48,7 @@ func (pe *prepEncoder) putString(in *string) {
 		return
 	}
 	if len(*in) > math.MaxInt16 {
-		pe.err = EncodingError{"String too long"}
+		pe.err = EncodingError("String too long")
 	} else {
 		pe.length += len(*in)
 	}
@@ -60,7 +60,7 @@ func (pe *prepEncoder) putBytes(in *[]byte) {
 		return
 	}
 	if len(*in) > math.MaxInt32 {
-		pe.err = EncodingError{"Bytes too long"}
+		pe.err = EncodingError("Bytes too long.")
 	} else {
 		pe.length += len(*in)
 	}

+ 14 - 14
real_decoder.go

@@ -19,7 +19,7 @@ func (rd *realDecoder) remaining() int {
 
 func (rd *realDecoder) getInt8() (int8, error) {
 	if rd.remaining() < 1 {
-		return -1, DecodingError{}
+		return -1, DecodingError("Insufficient data in getInt8.")
 	}
 	tmp := int8(rd.raw[rd.off])
 	rd.off += 1
@@ -28,7 +28,7 @@ func (rd *realDecoder) getInt8() (int8, error) {
 
 func (rd *realDecoder) getInt16() (int16, error) {
 	if rd.remaining() < 2 {
-		return -1, DecodingError{}
+		return -1, DecodingError("Insufficient data in getInt16.")
 	}
 	tmp := int16(binary.BigEndian.Uint16(rd.raw[rd.off:]))
 	rd.off += 2
@@ -37,7 +37,7 @@ func (rd *realDecoder) getInt16() (int16, error) {
 
 func (rd *realDecoder) getInt32() (int32, error) {
 	if rd.remaining() < 4 {
-		return -1, DecodingError{}
+		return -1, DecodingError("Insufficient data in getInt32.")
 	}
 	tmp := int32(binary.BigEndian.Uint32(rd.raw[rd.off:]))
 	rd.off += 4
@@ -46,7 +46,7 @@ func (rd *realDecoder) getInt32() (int32, error) {
 
 func (rd *realDecoder) getInt64() (int64, error) {
 	if rd.remaining() < 8 {
-		return -1, DecodingError{}
+		return -1, DecodingError("Insufficient data in getInt64.")
 	}
 	tmp := int64(binary.BigEndian.Uint64(rd.raw[rd.off:]))
 	rd.off += 8
@@ -57,14 +57,14 @@ func (rd *realDecoder) getInt64() (int64, error) {
 
 func (rd *realDecoder) getInt32Array() ([]int32, error) {
 	if rd.remaining() < 4 {
-		return nil, DecodingError{}
+		return nil, DecodingError("Insufficient data in getInt32Array.")
 	}
 	n := int(binary.BigEndian.Uint32(rd.raw[rd.off:]))
 	rd.off += 4
 
 	var ret []int32 = nil
 	if rd.remaining() < 4*n {
-		return nil, DecodingError{}
+		return nil, DecodingError("Insufficient data in getInt32Array.")
 	} else if n > 0 {
 		ret = make([]int32, n)
 		for i := range ret {
@@ -77,12 +77,12 @@ func (rd *realDecoder) getInt32Array() ([]int32, error) {
 
 func (rd *realDecoder) getArrayCount() (int, error) {
 	if rd.remaining() < 4 {
-		return -1, DecodingError{}
+		return -1, DecodingError("Insufficient data in getArrayCount.")
 	}
 	tmp := int(binary.BigEndian.Uint32(rd.raw[rd.off:]))
 	rd.off += 4
 	if tmp > rd.remaining() || tmp > 2*math.MaxUint16 {
-		return -1, DecodingError{}
+		return -1, DecodingError("Array absurdly long in getArrayCount.")
 	}
 	return tmp, nil
 }
@@ -105,13 +105,13 @@ func (rd *realDecoder) getString() (*string, error) {
 
 	switch {
 	case n < -1:
-		return nil, DecodingError{}
+		return nil, DecodingError("Negative string length in getString.")
 	case n == -1:
 		return nil, nil
 	case n == 0:
 		return new(string), nil
 	case n > rd.remaining():
-		return nil, DecodingError{}
+		return nil, DecodingError("String too long in getString.")
 	default:
 		tmp := new(string)
 		*tmp = string(rd.raw[rd.off : rd.off+n])
@@ -131,14 +131,14 @@ func (rd *realDecoder) getBytes() (*[]byte, error) {
 
 	switch {
 	case n < -1:
-		return nil, DecodingError{}
+		return nil, DecodingError("Negative byte length in getBytes.")
 	case n == -1:
 		return nil, nil
 	case n == 0:
 		tmp := make([]byte, 0)
 		return &tmp, nil
 	case n > rd.remaining():
-		return nil, DecodingError{}
+		return nil, DecodingError("Bytes too long in getBytes.")
 	default:
 		tmp := rd.raw[rd.off : rd.off+n]
 		rd.off += n
@@ -148,7 +148,7 @@ func (rd *realDecoder) getBytes() (*[]byte, error) {
 
 func (rd *realDecoder) getSubset(length int) (packetDecoder, error) {
 	if rd.remaining() < length {
-		return nil, DecodingError{"Not enough data for subset."}
+		return nil, DecodingError("Not enough data for subset.")
 	}
 
 	return &realDecoder{raw: rd.raw[rd.off : rd.off+length]}, nil
@@ -160,7 +160,7 @@ func (rd *realDecoder) push(in pushDecoder) error {
 	in.saveOffset(rd.off)
 
 	if rd.remaining() < in.reserveLength() {
-		return DecodingError{}
+		return DecodingError("Insufficient data while reserving for push.")
 	}
 
 	rd.stack = append(rd.stack, in)