fix linting errors

This commit is contained in:
Quentin McGaw
2025-11-17 15:17:57 +00:00
parent 35b6b709b2
commit 25b381e138
2 changed files with 27 additions and 26 deletions

View File

@@ -15,9 +15,9 @@ import (
) )
const ( const (
dnsUpstreamTypeDot = "dot" DNSUpstreamTypeDot = "dot"
dnsUpstreamTypeDoh = "doh" DNSUpstreamTypeDoh = "doh"
dnsUpstreamTypePlain = "plain" DNSUpstreamTypePlain = "plain"
) )
// DNS contains settings to configure DNS. // DNS contains settings to configure DNS.
@@ -58,7 +58,7 @@ var (
) )
func (d DNS) validate() (err error) { func (d DNS) validate() (err error) {
if !helpers.IsOneOf(d.UpstreamType, dnsUpstreamTypeDot, dnsUpstreamTypeDoh, dnsUpstreamTypePlain) { if !helpers.IsOneOf(d.UpstreamType, DNSUpstreamTypeDot, DNSUpstreamTypeDoh, DNSUpstreamTypePlain) {
return fmt.Errorf("%w: %s", ErrDNSUpstreamTypeNotValid, d.UpstreamType) return fmt.Errorf("%w: %s", ErrDNSUpstreamTypeNotValid, d.UpstreamType)
} }
@@ -76,7 +76,7 @@ func (d DNS) validate() (err error) {
} }
} }
if d.UpstreamType == dnsUpstreamTypePlain { if d.UpstreamType == DNSUpstreamTypePlain {
if *d.IPv6 && !slices.ContainsFunc(d.UpstreamPlainAddresses, func(addrPort netip.AddrPort) bool { if *d.IPv6 && !slices.ContainsFunc(d.UpstreamPlainAddresses, func(addrPort netip.AddrPort) bool {
return addrPort.Addr().Is6() return addrPort.Addr().Is6()
}) { }) {
@@ -122,7 +122,7 @@ func (d *DNS) overrideWith(other DNS) {
} }
func (d *DNS) setDefaults() { func (d *DNS) setDefaults() {
d.UpstreamType = gosettings.DefaultComparable(d.UpstreamType, dnsUpstreamTypeDot) d.UpstreamType = gosettings.DefaultComparable(d.UpstreamType, DNSUpstreamTypeDot)
const defaultUpdatePeriod = 24 * time.Hour const defaultUpdatePeriod = 24 * time.Hour
d.UpdatePeriod = gosettings.DefaultPointer(d.UpdatePeriod, defaultUpdatePeriod) d.UpdatePeriod = gosettings.DefaultPointer(d.UpdatePeriod, defaultUpdatePeriod)
d.Providers = gosettings.DefaultSlice(d.Providers, []string{ d.Providers = gosettings.DefaultSlice(d.Providers, []string{
@@ -141,7 +141,7 @@ func defaultDNSProviders() []string {
} }
func (d DNS) GetFirstPlaintextIPv4() (ipv4 netip.Addr) { func (d DNS) GetFirstPlaintextIPv4() (ipv4 netip.Addr) {
if d.UpstreamType == dnsUpstreamTypePlain { if d.UpstreamType == DNSUpstreamTypePlain {
for _, addrPort := range d.UpstreamPlainAddresses { for _, addrPort := range d.UpstreamPlainAddresses {
if addrPort.Addr().Is4() { if addrPort.Addr().Is4() {
return addrPort.Addr() return addrPort.Addr()
@@ -191,7 +191,7 @@ func (d DNS) toLinesNode() (node *gotree.Node) {
upstreamResolvers := node.Append("Upstream resolvers:") upstreamResolvers := node.Append("Upstream resolvers:")
if len(d.UpstreamPlainAddresses) > 0 { if len(d.UpstreamPlainAddresses) > 0 {
if d.UpstreamType == dnsUpstreamTypePlain { if d.UpstreamType == DNSUpstreamTypePlain {
for _, addr := range d.UpstreamPlainAddresses { for _, addr := range d.UpstreamPlainAddresses {
upstreamResolvers.Append(addr.String()) upstreamResolvers.Append(addr.String())
} }
@@ -279,7 +279,7 @@ func (d *DNS) readUpstreamPlainAddresses(r *reader.Reader) (err error) {
const defaultPlainPort = 53 const defaultPlainPort = 53
addrPort := netip.AddrPortFrom(serverAddress, defaultPlainPort) addrPort := netip.AddrPortFrom(serverAddress, defaultPlainPort)
d.UpstreamPlainAddresses = append(d.UpstreamPlainAddresses, addrPort) d.UpstreamPlainAddresses = append(d.UpstreamPlainAddresses, addrPort)
d.UpstreamType = dnsUpstreamTypePlain d.UpstreamType = DNSUpstreamTypePlain
d.Providers = []string{} d.Providers = []string{}
return nil return nil
} }

View File

@@ -26,23 +26,23 @@ func (l *Loop) SetSettings(ctx context.Context, settings settings.DNS) (
return l.state.SetSettings(ctx, settings) return l.state.SetSettings(ctx, settings)
} }
func buildServerSettings(settings settings.DNS, func buildServerSettings(userSettings settings.DNS,
filter *mapfilter.Filter, localResolvers []netip.Addr, filter *mapfilter.Filter, localResolvers []netip.Addr,
logger Logger) ( logger Logger) (
serverSettings server.Settings, err error, serverSettings server.Settings, err error,
) { ) {
serverSettings.Logger = logger serverSettings.Logger = logger
upstreamResolvers := buildProviders(settings) upstreamResolvers := buildProviders(userSettings)
ipVersion := "ipv4" ipVersion := "ipv4"
if *settings.IPv6 { if *userSettings.IPv6 {
ipVersion = "ipv6" ipVersion = "ipv6"
} }
var dialer server.Dialer var dialer server.Dialer
switch settings.UpstreamType { switch userSettings.UpstreamType {
case "dot": case settings.DNSUpstreamTypeDot:
dialerSettings := dot.Settings{ dialerSettings := dot.Settings{
UpstreamResolvers: upstreamResolvers, UpstreamResolvers: upstreamResolvers,
IPVersion: ipVersion, IPVersion: ipVersion,
@@ -51,7 +51,7 @@ func buildServerSettings(settings settings.DNS,
if err != nil { if err != nil {
return server.Settings{}, fmt.Errorf("creating DNS over TLS dialer: %w", err) return server.Settings{}, fmt.Errorf("creating DNS over TLS dialer: %w", err)
} }
case "doh": case settings.DNSUpstreamTypeDoh:
dialerSettings := doh.Settings{ dialerSettings := doh.Settings{
UpstreamResolvers: upstreamResolvers, UpstreamResolvers: upstreamResolvers,
IPVersion: ipVersion, IPVersion: ipVersion,
@@ -60,7 +60,7 @@ func buildServerSettings(settings settings.DNS,
if err != nil { if err != nil {
return server.Settings{}, fmt.Errorf("creating DNS over HTTPS dialer: %w", err) return server.Settings{}, fmt.Errorf("creating DNS over HTTPS dialer: %w", err)
} }
case "plain": case settings.DNSUpstreamTypePlain:
dialerSettings := plain.Settings{ dialerSettings := plain.Settings{
UpstreamResolvers: upstreamResolvers, UpstreamResolvers: upstreamResolvers,
IPVersion: ipVersion, IPVersion: ipVersion,
@@ -70,11 +70,11 @@ func buildServerSettings(settings settings.DNS,
return server.Settings{}, fmt.Errorf("creating plain DNS dialer: %w", err) return server.Settings{}, fmt.Errorf("creating plain DNS dialer: %w", err)
} }
default: default:
panic("unknown upstream type: " + settings.UpstreamType) panic("unknown upstream type: " + userSettings.UpstreamType)
} }
serverSettings.Dialer = dialer serverSettings.Dialer = dialer
if *settings.Caching { if *userSettings.Caching {
lruCache, err := lru.New(lru.Settings{}) lruCache, err := lru.New(lru.Settings{})
if err != nil { if err != nil {
return server.Settings{}, fmt.Errorf("creating LRU cache: %w", err) return server.Settings{}, fmt.Errorf("creating LRU cache: %w", err)
@@ -116,10 +116,11 @@ func buildServerSettings(settings settings.DNS,
return serverSettings, nil return serverSettings, nil
} }
func buildProviders(settings settings.DNS) []provider.Provider { func buildProviders(userSettings settings.DNS) []provider.Provider {
if settings.UpstreamType == "plain" && len(settings.UpstreamPlainAddresses) > 0 { if userSettings.UpstreamType == settings.DNSUpstreamTypePlain &&
providers := make([]provider.Provider, len(settings.UpstreamPlainAddresses)) len(userSettings.UpstreamPlainAddresses) > 0 {
for i, addrPort := range settings.UpstreamPlainAddresses { providers := make([]provider.Provider, len(userSettings.UpstreamPlainAddresses))
for i, addrPort := range userSettings.UpstreamPlainAddresses {
providers[i] = provider.Provider{ providers[i] = provider.Provider{
Name: addrPort.String(), Name: addrPort.String(),
} }
@@ -132,8 +133,8 @@ func buildProviders(settings settings.DNS) []provider.Provider {
} }
providersData := provider.NewProviders() providersData := provider.NewProviders()
providers := make([]provider.Provider, 0, len(settings.Providers)+len(settings.UpstreamPlainAddresses)) providers := make([]provider.Provider, 0, len(userSettings.Providers)+len(userSettings.UpstreamPlainAddresses))
for _, providerName := range settings.Providers { for _, providerName := range userSettings.Providers {
provider, err := providersData.Get(providerName) provider, err := providersData.Get(providerName)
if err != nil { if err != nil {
panic(err) // this should already had been checked panic(err) // this should already had been checked
@@ -141,11 +142,11 @@ func buildProviders(settings settings.DNS) []provider.Provider {
providers = append(providers, provider) providers = append(providers, provider)
} }
if settings.UpstreamType != "plain" { if userSettings.UpstreamType != settings.DNSUpstreamTypePlain {
return providers return providers
} }
for _, addrPort := range settings.UpstreamPlainAddresses { for _, addrPort := range userSettings.UpstreamPlainAddresses {
newProvider := provider.Provider{ newProvider := provider.Provider{
Name: addrPort.String(), Name: addrPort.String(),
} }