| package sarama |
| |
| import "fmt" |
| |
| type responseHeader struct { |
| length int32 |
| correlationID int32 |
| } |
| |
| func (r *responseHeader) decode(pd packetDecoder, version int16) (err error) { |
| if version >= 1 { |
| if decoder, ok := pd.(*realDecoder); ok { |
| pd = &realFlexibleDecoder{decoder} |
| } else { |
| return PacketDecodingError{"failed to instantiate flexible decoder"} |
| } |
| } |
| r.length, err = pd.getInt32() |
| if err != nil { |
| return err |
| } |
| if r.length <= 4 || r.length > MaxResponseSize { |
| return PacketDecodingError{fmt.Sprintf("message of length %d too large or too small", r.length)} |
| } |
| |
| r.correlationID, err = pd.getInt32() |
| if err != nil { |
| return err |
| } |
| |
| _, err = pd.getEmptyTaggedFieldArray() |
| return err |
| } |