@@ -24,7 +24,7 @@ const (
24
24
25
25
// Result is an authentication result.
26
26
type Result interface {
27
- parse (value ResultValue , params map [string ]string )
27
+ parse (value ResultValue , params map [string ]string ) error
28
28
format () (value ResultValue , params map [string ]string )
29
29
}
30
30
@@ -34,10 +34,11 @@ type AuthResult struct {
34
34
Auth string
35
35
}
36
36
37
- func (r * AuthResult ) parse (value ResultValue , params map [string ]string ) {
37
+ func (r * AuthResult ) parse (value ResultValue , params map [string ]string ) error {
38
38
r .Value = value
39
39
r .Reason = params ["reason" ]
40
40
r .Auth = params ["smtp.auth" ]
41
+ return nil
41
42
}
42
43
43
44
func (r * AuthResult ) format () (ResultValue , map [string ]string ) {
@@ -51,11 +52,12 @@ type DKIMResult struct {
51
52
Identifier string
52
53
}
53
54
54
- func (r * DKIMResult ) parse (value ResultValue , params map [string ]string ) {
55
+ func (r * DKIMResult ) parse (value ResultValue , params map [string ]string ) error {
55
56
r .Value = value
56
57
r .Reason = params ["reason" ]
57
58
r .Domain = params ["header.d" ]
58
59
r .Identifier = params ["header.i" ]
60
+ return nil
59
61
}
60
62
61
63
func (r * DKIMResult ) format () (ResultValue , map [string ]string ) {
@@ -74,12 +76,13 @@ type DomainKeysResult struct {
74
76
Sender string
75
77
}
76
78
77
- func (r * DomainKeysResult ) parse (value ResultValue , params map [string ]string ) {
79
+ func (r * DomainKeysResult ) parse (value ResultValue , params map [string ]string ) error {
78
80
r .Value = value
79
81
r .Reason = params ["reason" ]
80
82
r .Domain = params ["header.d" ]
81
83
r .From = params ["header.from" ]
82
84
r .Sender = params ["header.sender" ]
85
+ return nil
83
86
}
84
87
85
88
func (r * DomainKeysResult ) format () (ResultValue , map [string ]string ) {
@@ -97,10 +100,11 @@ type IPRevResult struct {
97
100
IP string
98
101
}
99
102
100
- func (r * IPRevResult ) parse (value ResultValue , params map [string ]string ) {
103
+ func (r * IPRevResult ) parse (value ResultValue , params map [string ]string ) error {
101
104
r .Value = value
102
105
r .Reason = params ["reason" ]
103
106
r .IP = params ["policy.iprev" ]
107
+ return nil
104
108
}
105
109
106
110
func (r * IPRevResult ) format () (ResultValue , map [string ]string ) {
@@ -117,7 +121,7 @@ type SenderIDResult struct {
117
121
HeaderValue string
118
122
}
119
123
120
- func (r * SenderIDResult ) parse (value ResultValue , params map [string ]string ) {
124
+ func (r * SenderIDResult ) parse (value ResultValue , params map [string ]string ) error {
121
125
r .Value = value
122
126
r .Reason = params ["reason" ]
123
127
@@ -128,6 +132,8 @@ func (r *SenderIDResult) parse(value ResultValue, params map[string]string) {
128
132
break
129
133
}
130
134
}
135
+
136
+ return nil
131
137
}
132
138
133
139
func (r * SenderIDResult ) format () (value ResultValue , params map [string ]string ) {
@@ -144,11 +150,12 @@ type SPFResult struct {
144
150
Helo string
145
151
}
146
152
147
- func (r * SPFResult ) parse (value ResultValue , params map [string ]string ) {
153
+ func (r * SPFResult ) parse (value ResultValue , params map [string ]string ) error {
148
154
r .Value = value
149
155
r .Reason = params ["reason" ]
150
156
r .From = params ["smtp.mailfrom" ]
151
157
r .Helo = params ["smtp.helo" ]
158
+ return nil
152
159
}
153
160
154
161
func (r * SPFResult ) format () (ResultValue , map [string ]string ) {
@@ -165,10 +172,11 @@ type DMARCResult struct {
165
172
From string
166
173
}
167
174
168
- func (r * DMARCResult ) parse (value ResultValue , params map [string ]string ) {
175
+ func (r * DMARCResult ) parse (value ResultValue , params map [string ]string ) error {
169
176
r .Value = value
170
177
r .Reason = params ["reason" ]
171
178
r .From = params ["header.from" ]
179
+ return nil
172
180
}
173
181
174
182
func (r * DMARCResult ) format () (ResultValue , map [string ]string ) {
@@ -184,9 +192,10 @@ type GenericResult struct {
184
192
Params map [string ]string
185
193
}
186
194
187
- func (r * GenericResult ) parse (value ResultValue , params map [string ]string ) {
195
+ func (r * GenericResult ) parse (value ResultValue , params map [string ]string ) error {
188
196
r .Value = value
189
197
r .Params = params
198
+ return nil
190
199
}
191
200
192
201
func (r * GenericResult ) format () (ResultValue , map [string ]string ) {
@@ -289,8 +298,8 @@ func parseResult(s string) (Result, error) {
289
298
}
290
299
}
291
300
292
- r .parse (value , params )
293
- return r , nil
301
+ err = r .parse (value , params )
302
+ return r , err
294
303
}
295
304
296
305
func parseParam (s string ) (k string , v string , err error ) {
0 commit comments