Files
labca/patches/boulder-va_main.patch
2023-07-12 20:20:38 +02:00

42 lines
1.8 KiB
Diff

diff --git a/cmd/boulder-va/main.go b/cmd/boulder-va/main.go
index 8994b9b20..a0f0f9aa6 100644
--- a/cmd/boulder-va/main.go
+++ b/cmd/boulder-va/main.go
@@ -27,8 +27,9 @@ type Config struct {
// before giving up. May be short-circuited by deadlines. A zero value
// will be turned into 1.
DNSTries int
- DNSResolver string `validate:"required_without=DNSProvider,excluded_with=DNSProvider,omitempty,hostname|hostname_port"`
- DNSProvider *cmd.DNSProvider `validate:"required_without=DNSResolver,excluded_with=DNSResolver,omitempty"`
+ DNSResolver string `validate:"omitempty,hostname|hostname_port"`
+ DNSResolvers []string
+ DNSProvider *cmd.DNSProvider `validate:"omitempty"`
DNSTimeout config.Duration `validate:"required"`
DNSAllowLoopbackAddresses bool
@@ -87,7 +88,7 @@ func main() {
cmd.Fail("Cannot specify both 'dnsResolver' and dnsProvider")
}
- if c.VA.DNSResolver == "" && c.VA.DNSProvider == nil {
+ if c.VA.DNSResolver == "" && c.VA.DNSProvider == nil && len(c.VA.DNSResolvers) == 0 {
cmd.Fail("Must specify either 'dnsResolver' or dnsProvider")
}
@@ -100,8 +101,13 @@ func main() {
}
var servers bdns.ServerProvider
- servers, err = bdns.StartDynamicProvider(c.VA.DNSProvider, 60*time.Second)
- cmd.FailOnError(err, "Couldn't start dynamic DNS server resolver")
+ if len(c.VA.DNSResolvers) > 0 {
+ servers, err = bdns.NewStaticProvider(c.VA.DNSResolvers)
+ cmd.FailOnError(err, "Couldn't parse static DNS server(s)")
+ } else {
+ servers, err = bdns.StartDynamicProvider(c.VA.DNSProvider, 60*time.Second)
+ cmd.FailOnError(err, "Couldn't start dynamic DNS server resolver")
+ }
defer servers.Stop()
var resolver bdns.Client