From 56986eaa9987815e63b35c0d1207dc6383106e91 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Sun, 29 Sep 2024 23:28:55 +0200 Subject: [PATCH] namesilo: restrict CleanUp (#2287) --- providers/dns/namesilo/namesilo.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/providers/dns/namesilo/namesilo.go b/providers/dns/namesilo/namesilo.go index 61d9e681..450c3d68 100644 --- a/providers/dns/namesilo/namesilo.go +++ b/providers/dns/namesilo/namesilo.go @@ -100,11 +100,6 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { return fmt.Errorf("namesilo: %w", err) } - err = d.CleanUp(domain, token, keyAuth) - if err != nil { - return err - } - _, err = d.client.DnsAddRecord(&namesilo.DnsAddRecordParams{ Domain: zoneName, Type: "TXT", @@ -139,16 +134,18 @@ func (d *DNSProvider) CleanUp(domain, _, keyAuth string) error { return fmt.Errorf("namesilo: %w", err) } - var lastErr error for _, r := range resp.Reply.ResourceRecord { - if r.Type == "TXT" && (r.Host == subdomain || r.Host == dns01.UnFqdn(info.EffectiveFQDN)) { + if r.Type == "TXT" && r.Value == info.Value && (r.Host == subdomain || r.Host == dns01.UnFqdn(info.EffectiveFQDN)) { _, err := d.client.DnsDeleteRecord(&namesilo.DnsDeleteRecordParams{Domain: zoneName, ID: r.RecordID}) if err != nil { - lastErr = fmt.Errorf("namesilo: %w", err) + return fmt.Errorf("namesilo: %w", err) } + + return nil } } - return lastErr + + return fmt.Errorf("namesilo: no TXT record to delete for %s (%s)", info.EffectiveFQDN, info.Value) } // Timeout returns the timeout and interval to use when checking for DNS propagation.