36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
|
diff --git a/acme/client.go b/acme/client.go
|
||
|
index 20f98a9..cc85277 100644
|
||
|
--- a/acme/client.go
|
||
|
+++ b/acme/client.go
|
||
|
@@ -3,6 +3,7 @@ package acme
|
||
|
import (
|
||
|
"context"
|
||
|
"os"
|
||
|
+ "time"
|
||
|
|
||
|
"github.com/go-acme/lego/v3/certificate"
|
||
|
"github.com/go-acme/lego/v3/challenge/dns01"
|
||
|
@@ -42,6 +43,22 @@ func setupChallengeProviders(ctx context.Context, logger log.Logger, client *leg
|
||
|
nameServer := os.Getenv("LEGO_TEST_NAMESERVER")
|
||
|
isTesting := nameServer != ""
|
||
|
err = client.Challenge.SetDNS01Provider(provider,
|
||
|
+ dns01.WrapPreCheck(func(domain, fqdn, value string, check dns01.PreCheckFunc) (bool, error) {
|
||
|
+ ok, err := check(fqdn, value)
|
||
|
+ if !ok || err != nil {
|
||
|
+ return ok, err
|
||
|
+ }
|
||
|
+
|
||
|
+ if a.IgnoreDNSPropagation {
|
||
|
+ // Just wait 1 minute for stuff to settle...
|
||
|
+ const duration = 60 * time.Second
|
||
|
+ logger.Info("waiting %v for things to settle", duration)
|
||
|
+ time.Sleep(duration)
|
||
|
+ logger.Info("done waiting %v for things to settle", duration)
|
||
|
+ }
|
||
|
+
|
||
|
+ return true, nil
|
||
|
+ }),
|
||
|
dns01.CondOption(isTesting, dns01.AddRecursiveNameservers([]string{nameServer})),
|
||
|
dns01.CondOption(a.IgnoreDNSPropagation || isTesting, dns01.DisableCompletePropagationRequirement()))
|
||
|
if err != nil {
|