Browse Source

chore: linter: errorlint

Signed-off-by: Jakob Borg <[email protected]>
Jakob Borg 1 week ago
parent
commit
8e796ddb94

+ 1 - 1
cmd/infra/stcrashreceiver/sentry.go

@@ -136,7 +136,7 @@ func parseCrashReport(path string, report []byte) (*raven.Packet, error) {
 
 	r := bytes.NewReader(report)
 	ctx, _, err := stack.ScanSnapshot(r, io.Discard, stack.DefaultOpts())
-	if err != nil && err != io.EOF {
+	if err != nil && !errors.Is(err, io.EOF) {
 		return nil, err
 	}
 	if ctx == nil || len(ctx.Goroutines) == 0 {

+ 3 - 1
cmd/strelaysrv/testutil/main.go

@@ -6,6 +6,7 @@ import (
 	"bufio"
 	"context"
 	"crypto/tls"
+	"errors"
 	"flag"
 	"log"
 	"net"
@@ -133,7 +134,8 @@ func connectToStdio(stdin <-chan string, conn net.Conn) {
 		conn.SetReadDeadline(time.Now().Add(time.Millisecond))
 		n, err := conn.Read(buf[0:])
 		if err != nil {
-			nerr, ok := err.(net.Error)
+			var nerr net.Error
+			ok := errors.As(err, &nerr)
 			if !ok || !nerr.Timeout() {
 				log.Println(err)
 				return

+ 5 - 3
cmd/syncthing/main.go

@@ -529,7 +529,8 @@ func (c *serveCmd) syncthingMain() {
 			err = upgrade.To(release)
 		}
 		if err != nil {
-			if _, ok := err.(*errNoUpgrade); ok || err == errTooEarlyUpgradeCheck || err == errTooEarlyUpgrade {
+			var noUpgradeErr *errNoUpgrade
+			if errors.As(err, &noUpgradeErr) || errors.Is(err, errTooEarlyUpgradeCheck) || errors.Is(err, errTooEarlyUpgrade) {
 				slog.Debug("Initial automatic upgrade", slogutil.Error(err))
 			} else {
 				slog.Info("Initial automatic upgrade", slogutil.Error(err))
@@ -721,7 +722,7 @@ func autoUpgrade(cfg config.Wrapper, app *syncthing.App, evLogger events.Logger)
 
 		checkInterval := time.Duration(opts.AutoUpgradeIntervalH) * time.Hour
 		rel, err := upgrade.LatestRelease(opts.ReleasesURL, build.Version, opts.UpgradeToPreReleases)
-		if err == upgrade.ErrUpgradeUnsupported {
+		if errors.Is(err, upgrade.ErrUpgradeUnsupported) {
 			sub.Unsubscribe()
 			return
 		}
@@ -837,7 +838,8 @@ func setPauseState(cfgWrapper config.Wrapper, paused bool) {
 }
 
 func exitCodeForUpgrade(err error) int {
-	if _, ok := err.(*errNoUpgrade); ok {
+	var noUpgradeErr *errNoUpgrade
+	if errors.As(err, &noUpgradeErr) {
 		return svcutil.ExitNoUpgradeAvailable.AsInt()
 	}
 	return svcutil.ExitError.AsInt()

+ 3 - 1
cmd/syncthing/monitor.go

@@ -9,6 +9,7 @@ package main
 import (
 	"bufio"
 	"context"
+	"errors"
 	"fmt"
 	"io"
 	"log/slog"
@@ -176,7 +177,8 @@ func (c *serveCmd) monitorMain() {
 			os.Exit(svcutil.ExitSuccess.AsInt())
 		}
 
-		if exiterr, ok := err.(*exec.ExitError); ok {
+		exiterr := &exec.ExitError{}
+		if errors.As(err, &exiterr) {
 			exitCode := exiterr.ExitCode()
 			if stopped || c.NoRestart {
 				os.Exit(exitCode)

+ 1 - 1
lib/api/api.go

@@ -455,7 +455,7 @@ func (s *service) Serve(ctx context.Context) error {
 	// due to a config change through the API, let that finish successfully.
 	timeout, cancel := context.WithTimeout(context.Background(), s.shutdownTimeout)
 	defer cancel()
-	if err := srv.Shutdown(timeout); err == timeout.Err() {
+	if err := srv.Shutdown(timeout); errors.Is(err, timeout.Err()) {
 		srv.Close()
 	}
 

+ 3 - 1
lib/beacon/broadcast.go

@@ -8,6 +8,7 @@ package beacon
 
 import (
 	"context"
+	"errors"
 	"log/slog"
 	"net"
 	"time"
@@ -93,7 +94,8 @@ func writeBroadcasts(ctx context.Context, inbox <-chan []byte, port int) error {
 			_, err = conn.WriteTo(bs, dst)
 			conn.SetWriteDeadline(time.Time{})
 
-			if nerr, ok := err.(net.Error); ok && nerr.Timeout() {
+			var nerr net.Error
+			if errors.As(err, &nerr) && nerr.Timeout() {
 				// Write timeouts should not happen. We treat it as a fatal
 				// error on the socket.
 				l.Debugln(err)

+ 1 - 1
lib/config/folderconfiguration.go

@@ -153,7 +153,7 @@ func (f FolderConfiguration) ModTimeWindow() time.Duration {
 }
 
 func (f *FolderConfiguration) CreateMarker() error {
-	if err := f.CheckPath(); err != ErrMarkerMissing {
+	if err := f.CheckPath(); !errors.Is(err, ErrMarkerMissing) {
 		return err
 	}
 	if f.MarkerName != DefaultMarkerName {

+ 3 - 1
lib/connections/util.go

@@ -7,6 +7,7 @@
 package connections
 
 import (
+	"errors"
 	"net"
 	"net/url"
 	"strconv"
@@ -20,7 +21,8 @@ func fixupPort(uri *url.URL, defaultPort int) *url.URL {
 	copyURI := *uri
 
 	host, port, err := net.SplitHostPort(uri.Host)
-	if e, ok := err.(*net.AddrError); ok && strings.Contains(e.Err, "missing port") {
+	e := &net.AddrError{}
+	if errors.As(err, &e) && strings.Contains(e.Err, "missing port") {
 		// addr is of the form "1.2.3.4" or "[fe80::1]"
 		host = uri.Host
 		if strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") {

+ 1 - 1
lib/protocol/protocol.go

@@ -406,7 +406,7 @@ func (c *rawConnection) readerLoop() {
 	for {
 		msg, err := c.readMessage(fourByteBuf)
 		if err != nil {
-			if err == errUnknownMessage {
+			if errors.Is(err, errUnknownMessage) {
 				// Unknown message types are skipped, for future extensibility.
 				continue
 			}

+ 1 - 1
lib/rc/rc.go

@@ -144,7 +144,7 @@ func (p *Process) Stop() (*os.ProcessState, error) {
 	default:
 	}
 
-	if _, err := p.Post("/rest/system/shutdown", nil); err != nil && err != io.ErrUnexpectedEOF {
+	if _, err := p.Post("/rest/system/shutdown", nil); err != nil && !errors.Is(err, io.ErrUnexpectedEOF) {
 		// Unexpected EOF is somewhat expected here, as we may exit before
 		// returning something sensible.
 		return nil, err

+ 3 - 1
lib/relay/client/methods.go

@@ -5,6 +5,7 @@ package client
 import (
 	"context"
 	"crypto/tls"
+	"errors"
 	"fmt"
 	"net"
 	"net/url"
@@ -137,7 +138,8 @@ func TestRelay(ctx context.Context, uri *url.URL, certs []tls.Certificate, sleep
 		if err == nil {
 			return nil
 		}
-		if _, ok := err.(*incorrectResponseCodeErr); !ok {
+		incorrectResponseCodeErr := &incorrectResponseCodeErr{}
+		if errors.As(err, &incorrectResponseCodeErr) {
 			return fmt.Errorf("getting invitation: %w", err)
 		}
 		time.Sleep(sleep)

+ 1 - 1
lib/tlsutil/tlsutil.go

@@ -209,7 +209,7 @@ func (l *DowngradingListener) Accept() (net.Conn, error) {
 
 	// We failed to identify the socket type, pretend that everything is fine,
 	// and pass it to the underlying handler, and let them deal with it.
-	if err == ErrIdentificationFailed {
+	if errors.Is(err, ErrIdentificationFailed) {
 		return conn, nil
 	}
 

+ 2 - 1
lib/upnp/upnp.go

@@ -229,7 +229,8 @@ USER-AGENT: syncthing/%s
 
 	_, err = socket.WriteTo(search, &ssdp)
 	if err != nil {
-		if e, ok := err.(net.Error); !ok || !e.Timeout() {
+		var e net.Error
+		if !errors.As(err, &e) || !e.Timeout() {
 			l.Debugln("UPnP discovery: sending search request:", err)
 		}
 		return

+ 3 - 2
lib/versioner/external.go

@@ -101,8 +101,9 @@ func (v external) Archive(filePath string) error {
 	combinedOutput, err := cmd.CombinedOutput()
 	l.Debugln("external command output:", string(combinedOutput))
 	if err != nil {
-		if eerr, ok := err.(*exec.ExitError); ok && len(eerr.Stderr) > 0 {
-			return fmt.Errorf("%v: %v", err, string(eerr.Stderr))
+		eerr := &exec.ExitError{}
+		if errors.As(err, &eerr) && len(eerr.Stderr) > 0 {
+			return fmt.Errorf("%w: %v", err, string(eerr.Stderr))
 		}
 		return err
 	}