From d557d4942909b7426830242b8c07ff092cb111a3 Mon Sep 17 00:00:00 2001 From: zhangchenhao Date: Fri, 6 Jun 2025 20:19:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E6=A3=80=E6=9F=A5=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=87=8D=E8=AF=95=E5=88=B0=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E7=AD=89=E5=BE=85=E6=97=B6=E9=97=B4=E5=86=8D=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/cert/apply/apply.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/backend/internal/cert/apply/apply.go b/backend/internal/cert/apply/apply.go index b52bec3..79430f5 100644 --- a/backend/internal/cert/apply/apply.go +++ b/backend/internal/cert/apply/apply.go @@ -538,19 +538,31 @@ func Apply(cfg map[string]any, logger *public.Logger) (map[string]any, error) { }), ) } else { + start := time.Now() + maxWait := 2 * time.Minute // 你想要的最大等待时间 err = client.Challenge.SetDNS01Provider(provider, dns01.AddRecursiveNameservers(NameServers), dns01.WrapPreCheck(func(domain, fqdn, value string, check dns01.PreCheckFunc) (bool, error) { ok, err := check(fqdn, value) + elapsed := time.Since(start) if err != nil { log.Printf("[WARN] DNS precheck error for %s: %v", fqdn, err) - } else if !ok { - log.Printf("[INFO] TXT record for %s not yet found, but continuing anyway.", fqdn) - } else { - log.Printf("[OK] TXT record for %s is present.", fqdn) + if elapsed >= maxWait { + log.Printf("[WARN] Precheck error but forcing continue due to timeout for %s", fqdn) + return true, nil + } + return false, nil } - // 👇 核心点:无论查不查到,都强制返回 true - return true, nil + if ok { + log.Printf("[OK] TXT record for %s is present.", fqdn) + return true, nil + } + if elapsed >= maxWait { + log.Printf("[WARN] TXT record for %s not found after %v, forcing continue.", fqdn, elapsed) + return true, nil + } + log.Printf("[INFO] TXT record for %s not yet found, waiting... elapsed %v", fqdn, elapsed) + return false, nil }), ) }