From d292e03d1b060ee0fd882cc06afe30f816e0099b Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Thu, 10 Aug 2023 00:22:57 +0700 Subject: [PATCH] Satisfying staticcheck linter --- client_info.go | 2 +- cmd/ctrld/cli.go | 29 ++++------------------------- cmd/ctrld/prog.go | 11 ----------- internal/clientinfo/mdns.go | 6 ++---- internal/dns/direct.go | 3 ++- internal/dns/manager_linux.go | 2 ++ internal/router/os_freebsd.go | 6 ++++++ internal/router/router.go | 8 +------- 8 files changed, 18 insertions(+), 49 deletions(-) diff --git a/client_info.go b/client_info.go index acd7c5e..c4494f7 100644 --- a/client_info.go +++ b/client_info.go @@ -15,5 +15,5 @@ type LeaseFileFormat string const ( Dnsmasq LeaseFileFormat = "dnsmasq" - IscDhcpd = "isc-dhcpd" + IscDhcpd LeaseFileFormat = "isc-dhcpd" ) diff --git a/cmd/ctrld/cli.go b/cmd/ctrld/cli.go index 9396090..4a10928 100644 --- a/cmd/ctrld/cli.go +++ b/cmd/ctrld/cli.go @@ -50,10 +50,9 @@ var ( ) var ( - v = viper.NewWithOptions(viper.KeyDelimiter("::")) - defaultConfigWritten = false - defaultConfigFile = "ctrld.toml" - rootCertPool *x509.CertPool + v = viper.NewWithOptions(viper.KeyDelimiter("::")) + defaultConfigFile = "ctrld.toml" + rootCertPool *x509.CertPool ) var basicModeFlags = []string{"listen", "primary_upstream", "secondary_upstream", "domains"} @@ -897,7 +896,6 @@ func readConfigFile(writeDefaultConfig bool) bool { } mainLog.Load().Info().Msg("writing default config file to: " + fp) } - defaultConfigWritten = true return false } @@ -1382,7 +1380,7 @@ func fieldErrorMsg(fe validator.FieldError) string { case "cidr": return fmt.Sprintf("invalid value: %s", fe.Value()) case "required_unless", "required": - return fmt.Sprintf("value is required") + return "value is required" case "dnsrcode": return fmt.Sprintf("invalid DNS rcode value: %s", fe.Value()) case "ipstack": @@ -1396,25 +1394,6 @@ func fieldErrorMsg(fe validator.FieldError) string { return "" } -// couldBeDirectListener reports whether ctrld can be a direct listener on port 53. -// It returns true only if ctrld can listen on port 53 for all interfaces. That means -// there's no other software listening on port 53. -// -// If someone listening on port 53, or ctrld could only listen on port 53 for a specific -// interface, ctrld could only be configured as a DNS forwarder. -func couldBeDirectListener(lc *ctrld.ListenerConfig) bool { - if lc == nil || lc.Port != 53 { - return false - } - switch lc.IP { - case "", "::", "0.0.0.0": - return true - default: - return false - } - -} - func isLoopback(ipStr string) bool { ip := net.ParseIP(ipStr) if ip == nil { diff --git a/cmd/ctrld/prog.go b/cmd/ctrld/prog.go index 6c16a13..e955c92 100644 --- a/cmd/ctrld/prog.go +++ b/cmd/ctrld/prog.go @@ -326,17 +326,6 @@ var ( windowsEADDRINUSE = syscall.Errno(10048) ) -func errUrlConnRefused(err error) bool { - var urlErr *url.Error - if errors.As(err, &urlErr) { - var opErr *net.OpError - if errors.As(urlErr.Err, &opErr) { - return errors.Is(opErr.Err, syscall.ECONNREFUSED) || errors.Is(opErr.Err, windowsECONNREFUSED) - } - } - return false -} - func errUrlNetworkError(err error) bool { var urlErr *url.Error if errors.As(err, &urlErr) { diff --git a/internal/clientinfo/mdns.go b/internal/clientinfo/mdns.go index 5aed579..c9d97e5 100644 --- a/internal/clientinfo/mdns.go +++ b/internal/clientinfo/mdns.go @@ -98,11 +98,9 @@ func (m *mdns) probeLoop(conns []*net.UDPConn, remoteAddr net.Addr, quitCh chan if err != nil { ctrld.ProxyLogger.Load().Warn().Err(err).Msg("error while probing mdns") bo.BackOff(context.Background(), errors.New("mdns probe backoff")) + continue } - select { - case <-quitCh: - break - } + break } <-quitCh for _, conn := range conns { diff --git a/internal/dns/direct.go b/internal/dns/direct.go index e11be05..a825e6d 100644 --- a/internal/dns/direct.go +++ b/internal/dns/direct.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//lint:file-ignore U1000 satisfy CI. +//lint:file-ignore U1000 Ignore, this file is forked from upstream code. +//lint:file-ignore ST1005 Ignore, this file is forked from upstream code. package dns diff --git a/internal/dns/manager_linux.go b/internal/dns/manager_linux.go index 1fa1650..2886090 100644 --- a/internal/dns/manager_linux.go +++ b/internal/dns/manager_linux.go @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//lint:file-ignore U1000 Ignore this file, it's a copy. + package dns import ( diff --git a/internal/router/os_freebsd.go b/internal/router/os_freebsd.go index a84fcaa..3b7c0a3 100644 --- a/internal/router/os_freebsd.go +++ b/internal/router/os_freebsd.go @@ -1,6 +1,7 @@ package router import ( + "bytes" "fmt" "net" "os" @@ -116,6 +117,11 @@ func (or *osRouter) Cleanup() error { return nil } +func isPfsense() bool { + b, err := os.ReadFile("/etc/platform") + return err == nil && bytes.HasPrefix(b, []byte("pfSense")) +} + const bsdInitScript = `#!/bin/sh # PROVIDE: {{.Name}} diff --git a/internal/router/router.go b/internal/router/router.go index 90882c9..ad3c641 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -93,8 +93,7 @@ func IsOldOpenwrt() bool { var routerPlatform atomic.Pointer[router] type router struct { - name string - sendClientInfo bool + name string } // Name returns name of the router platform. @@ -241,8 +240,3 @@ func unameU() []byte { out, _ := exec.Command("uname", "-u").Output() return out } - -func isPfsense() bool { - b, err := os.ReadFile("/etc/platform") - return err == nil && bytes.HasPrefix(b, []byte("pfSense")) -}