httpcaddyfile: Update tls parsing for DNS providers

This commit is contained in:
Matthew Holt 2020-05-01 10:41:08 -06:00
parent bca610fbde
commit a77bd1d887
No known key found for this signature in database
GPG Key ID: 2A349DD577D586A5

View File

@ -205,19 +205,26 @@ func parseTLS(h Helper) ([]ConfigValue, error) {
if !h.Next() { if !h.Next() {
return nil, h.ArgErr() return nil, h.ArgErr()
} }
provName := h.Val()
if acmeIssuer == nil { if acmeIssuer == nil {
acmeIssuer = new(caddytls.ACMEIssuer) acmeIssuer = new(caddytls.ACMEIssuer)
} }
provName := h.Val()
if acmeIssuer.Challenges == nil { if acmeIssuer.Challenges == nil {
acmeIssuer.Challenges = new(caddytls.ChallengesConfig) acmeIssuer.Challenges = new(caddytls.ChallengesConfig)
acmeIssuer.Challenges.DNS = new(caddytls.DNSChallengeConfig) acmeIssuer.Challenges.DNS = new(caddytls.DNSChallengeConfig)
} }
dnsProvModule, err := caddy.GetModule("tls.dns." + provName) dnsProvModule, err := caddy.GetModule("dns.providers." + provName)
if err != nil { if err != nil {
return nil, h.Errf("getting DNS provider module named '%s': %v", provName, err) return nil, h.Errf("getting DNS provider module named '%s': %v", provName, err)
} }
acmeIssuer.Challenges.DNS.ProviderRaw = caddyconfig.JSONModuleObject(dnsProvModule.New(), "name", provName, h.warnings) dnsProvModuleInstance := dnsProvModule.New()
if unm, ok := dnsProvModuleInstance.(caddyfile.Unmarshaler); ok {
err = unm.UnmarshalCaddyfile(h.NewFromNextSegment())
if err != nil {
return nil, err
}
}
acmeIssuer.Challenges.DNS.ProviderRaw = caddyconfig.JSONModuleObject(dnsProvModuleInstance, "name", provName, h.warnings)
case "ca_root": case "ca_root":
arg := h.RemainingArgs() arg := h.RemainingArgs()