hurricane: fix CNAME support (#1734)

Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
This commit is contained in:
Jürgen Brunink 2022-10-11 14:40:00 +02:00 committed by GitHub
parent 5e37ee3822
commit 7cfa075581
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 7 deletions

View file

@ -86,9 +86,9 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
// Present updates a TXT record to fulfill the dns-01 challenge.
func (d *DNSProvider) Present(domain, _, keyAuth string) error {
_, txtRecord := dns01.GetRecord(domain, keyAuth)
fqdn, txtRecord := dns01.GetRecord(domain, keyAuth)
err := d.client.UpdateTxtRecord(context.Background(), domain, txtRecord)
err := d.client.UpdateTxtRecord(context.Background(), dns01.UnFqdn(fqdn), txtRecord)
if err != nil {
return fmt.Errorf("hurricane: %w", err)
}
@ -97,8 +97,10 @@ func (d *DNSProvider) Present(domain, _, keyAuth string) error {
}
// CleanUp updates the TXT record matching the specified parameters.
func (d *DNSProvider) CleanUp(domain, _, _ string) error {
err := d.client.UpdateTxtRecord(context.Background(), domain, ".")
func (d *DNSProvider) CleanUp(domain, _, keyAuth string) error {
fqdn, _ := dns01.GetRecord(domain, keyAuth)
err := d.client.UpdateTxtRecord(context.Background(), dns01.UnFqdn(fqdn), ".")
if err != nil {
return fmt.Errorf("hurricane: %w", err)
}

View file

@ -51,8 +51,8 @@ func NewClient(credentials map[string]string) *Client {
}
// UpdateTxtRecord updates a TXT record.
func (c *Client) UpdateTxtRecord(ctx context.Context, domain string, txt string) error {
hostname := fmt.Sprintf("_acme-challenge.%s", domain)
func (c *Client) UpdateTxtRecord(ctx context.Context, hostname string, txt string) error {
domain := strings.TrimPrefix(hostname, "_acme-challenge.")
c.credMu.Lock()
token, ok := c.credentials[domain]

View file

@ -75,7 +75,7 @@ func TestClient_UpdateTxtRecord(t *testing.T) {
client := NewClient(map[string]string{"example.com": "secret"})
client.baseURL = server.URL
err := client.UpdateTxtRecord(context.Background(), "example.com", "foo")
err := client.UpdateTxtRecord(context.Background(), "_acme-challenge.example.com", "foo")
test.expected(t, err)
})
}