blob: fad555875355a64879696c1f3a578c5c888617b1 [file] [log] [blame]
Scott Bakered4efab2020-01-13 19:12:25 -08001package sarama
2
3type AclFilter struct {
4 Version int
5 ResourceType AclResourceType
6 ResourceName *string
7 ResourcePatternTypeFilter AclResourcePatternType
8 Principal *string
9 Host *string
10 Operation AclOperation
11 PermissionType AclPermissionType
12}
13
14func (a *AclFilter) encode(pe packetEncoder) error {
15 pe.putInt8(int8(a.ResourceType))
16 if err := pe.putNullableString(a.ResourceName); err != nil {
17 return err
18 }
19
20 if a.Version == 1 {
21 pe.putInt8(int8(a.ResourcePatternTypeFilter))
22 }
23
24 if err := pe.putNullableString(a.Principal); err != nil {
25 return err
26 }
27 if err := pe.putNullableString(a.Host); err != nil {
28 return err
29 }
30 pe.putInt8(int8(a.Operation))
31 pe.putInt8(int8(a.PermissionType))
32
33 return nil
34}
35
36func (a *AclFilter) decode(pd packetDecoder, version int16) (err error) {
37 resourceType, err := pd.getInt8()
38 if err != nil {
39 return err
40 }
41 a.ResourceType = AclResourceType(resourceType)
42
43 if a.ResourceName, err = pd.getNullableString(); err != nil {
44 return err
45 }
46
47 if a.Version == 1 {
48 pattern, err := pd.getInt8()
49
50 if err != nil {
51 return err
52 }
53
54 a.ResourcePatternTypeFilter = AclResourcePatternType(pattern)
55 }
56
57 if a.Principal, err = pd.getNullableString(); err != nil {
58 return err
59 }
60
61 if a.Host, err = pd.getNullableString(); err != nil {
62 return err
63 }
64
65 operation, err := pd.getInt8()
66 if err != nil {
67 return err
68 }
69 a.Operation = AclOperation(operation)
70
71 permissionType, err := pd.getInt8()
72 if err != nil {
73 return err
74 }
75 a.PermissionType = AclPermissionType(permissionType)
76
77 return nil
78}