99
1010 mdns "github.com/miekg/dns"
1111
12+ "github.com/pixel365/pulse/internal/e"
13+
1214 "github.com/pixel365/pulse/internal/config"
1315)
1416
@@ -34,11 +36,14 @@ func (c *Checker) request(ctx context.Context) error {
3436 }
3537
3638 if res == nil {
37- return fmt . Errorf ( "empty dns response" )
39+ return e . NewError ( e . ErrProtocol , "empty dns response" )
3840 }
3941
4042 if res .Rcode != mdns .RcodeSuccess {
41- return fmt .Errorf ("unexpected dns response code: %s" , mdns .RcodeToString [res .Rcode ])
43+ return e .NewError (
44+ e .ErrProtocol ,
45+ fmt .Sprintf ("unexpected dns response code: %s" , mdns .RcodeToString [res .Rcode ]),
46+ )
4247 }
4348
4449 values , err := collectAnswers (res .Answer , c .config .Spec .RecordType )
@@ -47,10 +52,9 @@ func (c *Checker) request(ctx context.Context) error {
4752 }
4853
4954 if len (values ) == 0 {
50- return fmt .Errorf (
51- "no %s records found for %s" ,
52- c .config .Spec .RecordType ,
53- c .config .Spec .Name ,
55+ return e .NewError (
56+ e .ErrConstraint ,
57+ fmt .Sprintf ("no %s records found for %s" , c .config .Spec .RecordType , c .config .Spec .Name ),
5458 )
5559 }
5660
@@ -202,7 +206,10 @@ func checkAnswers(expect *config.DNSExpect, recordType config.RecordType, actual
202206 for _ , want := range expect .Contains {
203207 value := normalizeValue (recordType , want )
204208 if _ , ok := actualSet [value ]; ! ok {
205- return fmt .Errorf ("expected dns answer to contain %q" , want )
209+ return e .NewError (
210+ e .ErrConstraint ,
211+ fmt .Sprintf ("expected dns answer to contain %q" , want ),
212+ )
206213 }
207214 }
208215
@@ -217,12 +224,18 @@ func checkAnswers(expect *config.DNSExpect, recordType config.RecordType, actual
217224
218225 expected = uniqueSorted (expected )
219226 if len (expected ) != len (actual ) {
220- return fmt .Errorf ("dns answers mismatch: expected %v, got %v" , expected , actual )
227+ return e .NewError (
228+ e .ErrConstraint ,
229+ fmt .Sprintf ("dns answers mismatch: expected %v, got %v" , expected , actual ),
230+ )
221231 }
222232
223233 for i := range expected {
224234 if expected [i ] != actual [i ] {
225- return fmt .Errorf ("dns answers mismatch: expected %v, got %v" , expected , actual )
235+ return e .NewError (
236+ e .ErrConstraint ,
237+ fmt .Sprintf ("dns answers mismatch: expected %v, got %v" , expected , actual ),
238+ )
226239 }
227240 }
228241
0 commit comments