blob: fbcef0bfbea346440672dbe0c57597f299f5234d [file] [log] [blame]
Scott Baker2c1c4822019-10-16 11:02:41 -07001package sarama
2
3import "fmt"
4
khenaidoo26721882021-08-11 17:42:52 -04005const (
6 responseLengthSize = 4
7 correlationIDSize = 4
8)
Scott Baker2c1c4822019-10-16 11:02:41 -07009
10type responseHeader struct {
11 length int32
12 correlationID int32
13}
14
khenaidoo26721882021-08-11 17:42:52 -040015func (r *responseHeader) decode(pd packetDecoder, version int16) (err error) {
Scott Baker2c1c4822019-10-16 11:02:41 -070016 r.length, err = pd.getInt32()
17 if err != nil {
18 return err
19 }
20 if r.length <= 4 || r.length > MaxResponseSize {
21 return PacketDecodingError{fmt.Sprintf("message of length %d too large or too small", r.length)}
22 }
23
24 r.correlationID, err = pd.getInt32()
khenaidoo26721882021-08-11 17:42:52 -040025
26 if version >= 1 {
27 if _, err := pd.getEmptyTaggedFieldArray(); err != nil {
28 return err
29 }
30 }
31
Scott Baker2c1c4822019-10-16 11:02:41 -070032 return err
33}