()
| 100 | } |
| 101 | |
| 102 | func (r *binaryReader) ReadLength() (int, error) { |
| 103 | b, err := r.read(4) |
| 104 | if len(b) < 4 { |
| 105 | return 0, err |
| 106 | } |
| 107 | n := binary.BigEndian.Uint32(b) |
| 108 | if n > math.MaxInt32 { |
| 109 | return 0, fmt.Errorf("length out of range: %d", n) |
| 110 | } |
| 111 | return int(n), nil |
| 112 | } |
| 113 | |
| 114 | func (r *binaryReader) ReadMessage() (Message, error) { |
| 115 | m := Message{} |