@@ -56,13 +56,15 @@ type Check struct {
5656 permerrAction modconfig.FailAction
5757 temperrAction modconfig.FailAction
5858
59- log log.Logger
59+ log log.Logger
60+ resolver dns.Resolver
6061}
6162
6263func New (_ , instName string , _ , _ []string ) (module.Module , error ) {
6364 return & Check {
6465 instName : instName ,
6566 log : log.Logger {Name : modName },
67+ resolver : dns .DefaultResolver (),
6668 }, nil
6769}
6870
@@ -243,7 +245,7 @@ func (s *state) relyOnDMARC(ctx context.Context, hdr textproto.Header) bool {
243245 return false
244246 }
245247
246- policyDomain , record , err := maddydmarc .FetchRecord (ctx , dns . DefaultResolver () , fromDomain )
248+ policyDomain , record , err := maddydmarc .FetchRecord (ctx , s . c . resolver , fromDomain )
247249 if err != nil {
248250 s .log .Error ("DMARC fetch" , err , "from_domain" , fromDomain )
249251 return false
@@ -323,7 +325,8 @@ func (s *state) CheckConnection(ctx context.Context) module.CheckResult {
323325
324326 if s .c .enforceEarly {
325327 res , err := spf .CheckHostWithSender (ip .IP ,
326- dns .FQDN (s .msgMeta .Conn .Hostname ), mailFrom )
328+ dns .FQDN (s .msgMeta .Conn .Hostname ), mailFrom ,
329+ spf .WithContext (ctx ), spf .WithResolver (s .c .resolver ))
327330 s .log .Debugf ("result: %s (%v)" , res , err )
328331 return s .spfResult (res , err )
329332 }
@@ -344,7 +347,8 @@ func (s *state) CheckConnection(ctx context.Context) module.CheckResult {
344347
345348 defer trace .StartRegion (ctx , "check.spf/CheckConnection (Async)" ).End ()
346349
347- res , err := spf .CheckHostWithSender (ip .IP , dns .FQDN (s .msgMeta .Conn .Hostname ), mailFrom )
350+ res , err := spf .CheckHostWithSender (ip .IP , dns .FQDN (s .msgMeta .Conn .Hostname ), mailFrom ,
351+ spf .WithContext (ctx ), spf .WithResolver (s .c .resolver ))
348352 s .log .Debugf ("result: %s (%v)" , res , err )
349353 s .spfFetch <- spfRes {res , err }
350354 }()
0 commit comments