blob: 60752e887b0e1a57b432064edd97680d9761ee18 [file] [log] [blame]
Abhay Kumara2ae5992025-11-10 14:02:24 +00001package sarama
2
3type SaslAuthenticateResponse struct {
4 // Version defines the protocol version to use for encode and decode
5 Version int16
6 Err KError
7 ErrorMessage *string
8 SaslAuthBytes []byte
9 SessionLifetimeMs int64
10}
11
12func (r *SaslAuthenticateResponse) setVersion(v int16) {
13 r.Version = v
14}
15
16func (r *SaslAuthenticateResponse) encode(pe packetEncoder) error {
17 pe.putKError(r.Err)
18 if err := pe.putNullableString(r.ErrorMessage); err != nil {
19 return err
20 }
21 if err := pe.putBytes(r.SaslAuthBytes); err != nil {
22 return err
23 }
24 if r.Version > 0 {
25 pe.putInt64(r.SessionLifetimeMs)
26 }
27 return nil
28}
29
30func (r *SaslAuthenticateResponse) decode(pd packetDecoder, version int16) (err error) {
31 r.Version = version
32 r.Err, err = pd.getKError()
33 if err != nil {
34 return err
35 }
36
37 if r.ErrorMessage, err = pd.getNullableString(); err != nil {
38 return err
39 }
40
41 if r.SaslAuthBytes, err = pd.getBytes(); err != nil {
42 return err
43 }
44
45 if version > 0 {
46 r.SessionLifetimeMs, err = pd.getInt64()
47 }
48
49 return err
50}
51
52func (r *SaslAuthenticateResponse) key() int16 {
53 return apiKeySASLAuth
54}
55
56func (r *SaslAuthenticateResponse) version() int16 {
57 return r.Version
58}
59
60func (r *SaslAuthenticateResponse) headerVersion() int16 {
61 return 0
62}
63
64func (r *SaslAuthenticateResponse) isValidVersion() bool {
65 return r.Version >= 0 && r.Version <= 1
66}
67
68func (r *SaslAuthenticateResponse) requiredVersion() KafkaVersion {
69 switch r.Version {
70 case 1:
71 return V2_2_0_0
72 default:
73 return V1_0_0_0
74 }
75}