diff --git a/checker/interactive.go b/checker/interactive.go index 18ff51d..3d92759 100644 --- a/checker/interactive.go +++ b/checker/interactive.go @@ -36,6 +36,7 @@ func (p *caaProvider) ParseForm(r *http.Request) (sdk.CheckerOptions, error) { return nil, errors.New("domain is required") } domain = dns.Fqdn(domain) + bare := strings.TrimSuffix(domain, ".") records, err := lookupCAA(domain) if err != nil { @@ -55,12 +56,12 @@ func (p *caaProvider) ParseForm(r *http.Request) (sdk.CheckerOptions, error) { svc := serviceMessage{ Type: serviceType, - Domain: strings.TrimSuffix(domain, "."), + Domain: bare, Service: svcBody, } return sdk.CheckerOptions{ - "domain": strings.TrimSuffix(domain, "."), + "domain": bare, "service": svc, }, nil } @@ -74,12 +75,12 @@ func lookupCAA(fqdn string) ([]CAARecord, error) { return nil, err } + c := new(dns.Client) for name := fqdn; name != "" && name != "."; { msg := new(dns.Msg) msg.SetQuestion(name, dns.TypeCAA) msg.RecursionDesired = true - c := new(dns.Client) in, _, err := c.Exchange(msg, resolver) if err != nil { return nil, err