summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-14 11:08:15 +0300
committerPaul Buetow <paul@buetow.org>2026-04-14 11:08:15 +0300
commitf143b6daca50eba520ceaec51c36222ab6ae667d (patch)
tree18cc8299b0e87fd8e633334abf74f57fd77f2a44 /internal
parent9d32b8138baf821d72eb1f5a7a218f9b1949c853 (diff)
fix(r3): use errors.Is for sentinel error comparisons
Replace direct == checks with errors.Is so wrapped errors are handled correctly (authkeys Verify, daemon server/EOF, Magefile uninstall). Refs: ask r3, 100 Go Mistakes #51 Made-with: Cursor
Diffstat (limited to 'internal')
-rw-r--r--internal/authkeys/store.go3
-rw-r--r--internal/daemon/daemon.go9
2 files changed, 7 insertions, 5 deletions
diff --git a/internal/authkeys/store.go b/internal/authkeys/store.go
index 7848ef8..a8c21c4 100644
--- a/internal/authkeys/store.go
+++ b/internal/authkeys/store.go
@@ -7,6 +7,7 @@ import (
"crypto/subtle"
"database/sql"
"encoding/base64"
+ "errors"
"fmt"
"path/filepath"
"time"
@@ -102,7 +103,7 @@ func (s *Store) CreateKey(ctx context.Context, hostname string) (token string, e
func (s *Store) Verify(ctx context.Context, hostname, token string) (bool, error) {
var stored []byte
err := s.db.QueryRowContext(ctx, "SELECT key_hash FROM client_key WHERE hostname = ?", hostname).Scan(&stored)
- if err == sql.ErrNoRows {
+ if errors.Is(err, sql.ErrNoRows) {
return false, nil
}
if err != nil {
diff --git a/internal/daemon/daemon.go b/internal/daemon/daemon.go
index b913c43..cad2812 100644
--- a/internal/daemon/daemon.go
+++ b/internal/daemon/daemon.go
@@ -3,6 +3,7 @@ package daemon
import (
"bytes"
"context"
+ "errors"
"fmt"
"io"
"log"
@@ -131,12 +132,12 @@ func Run(ctx context.Context, cfg Config) error {
defer cancel()
_ = srv.Shutdown(shutCtx)
err := <-errCh
- if err != nil && err != http.ErrServerClosed {
+ if err != nil && !errors.Is(err, http.ErrServerClosed) {
return fmt.Errorf("shutdown: %w", err)
}
return ctx.Err()
case err := <-errCh:
- if err == http.ErrServerClosed {
+ if errors.Is(err, http.ErrServerClosed) {
return nil
}
if err != nil {
@@ -200,7 +201,7 @@ func checkReadinessDirs(statsDir, authDB string) error {
func checkDirReadableWritable(dir string) error {
fi, err := os.Stat(dir)
if err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, os.ErrNotExist) {
return fmt.Errorf("missing")
}
return err
@@ -214,7 +215,7 @@ func checkDirReadableWritable(dir string) error {
}
_, err = f.Readdirnames(1)
_ = f.Close()
- if err != nil && err != io.EOF {
+ if err != nil && !errors.Is(err, io.EOF) {
return fmt.Errorf("not readable: %w", err)
}
tmp, err := os.CreateTemp(dir, ".goprecords-ready-*")