77 "strings"
88 "time"
99
10+ "github.com/qdm12/dns/internal/settings/defaults"
1011 "github.com/qdm12/dns/pkg/cache"
1112 cachenoop "github.com/qdm12/dns/pkg/cache/noop"
1213 "github.com/qdm12/dns/pkg/doh/metrics"
@@ -64,11 +65,7 @@ type SelfDNS struct {
6465func (s * ServerSettings ) SetDefaults () {
6566 s .Resolver .SetDefaults ()
6667 s .LogMiddleware .SetDefaults ()
67-
68- if s .Address == "" {
69- const defaultAddress = ":53"
70- s .Address = defaultAddress
71- }
68+ s .Address = defaults .String (s .Address , ":53" )
7269
7370 if s .Filter == nil {
7471 s .Filter = filternoop .New ()
@@ -95,10 +92,8 @@ func (s *ResolverSettings) SetDefaults() {
9592 s .DoHProviders = []string {"cloudflare" }
9693 }
9794
98- if s .Timeout == 0 {
99- const defaultTimeout = 5 * time .Second
100- s .Timeout = defaultTimeout
101- }
95+ const defaultTimeout = 5 * time .Second
96+ s .Timeout = defaults .Duration (s .Timeout , defaultTimeout )
10297
10398 if s .Warner == nil {
10499 s .Warner = lognoop .New ()
@@ -110,21 +105,16 @@ func (s *ResolverSettings) SetDefaults() {
110105}
111106
112107func (s * SelfDNS ) SetDefaults () {
113- if s .Timeout == 0 {
114- const defaultTimeout = 5 * time .Second
115- s .Timeout = defaultTimeout
116- }
108+ const defaultTimeout = 5 * time .Second
109+ s .Timeout = defaults .Duration (s .Timeout , defaultTimeout )
117110
118111 if len (s .DoTProviders ) == 0 {
119112 s .DoTProviders = []string {"cloudflare" }
120113 }
121114 // No default DNS fallback server for the internal HTTP client
122115 // to avoid leaking we are using a DoH server.
123116
124- if s .IPv6 == nil {
125- ipv6 := false
126- s .IPv6 = & ipv6
127- }
117+ s .IPv6 = defaults .BoolPtr (s .IPv6 , false )
128118}
129119
130120var (
0 commit comments