aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2025-07-04 17:24:02 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2025-07-04 17:24:02 -0700
commitee6629ad78ac62fa14371ea5ddb7474c1fe9c979 (patch)
tree186d23424e73797976f6d2f71d193bcbc71dbf76
parent262f66351484369fa65c2e23df81ef682ea06d89 (diff)
Fix file handle close warnings by ignoring return values
Updated all file close operations to use anonymous functions that ignore return values to satisfy golangci-lint errcheck warnings.
-rw-r--r--cmd/mobius-hotline-server/main.go4
-rw-r--r--cmd/mobius-hotline-server/main_test.go2
-rw-r--r--hotline/files_test.go2
-rw-r--r--hotline/server.go4
-rw-r--r--hotline/tracker.go2
-rw-r--r--internal/mobius/account_manager.go4
-rw-r--r--internal/mobius/api.go12
-rw-r--r--internal/mobius/ban.go2
-rw-r--r--internal/mobius/ban_test.go2
-rw-r--r--internal/mobius/threaded_news.go2
-rw-r--r--internal/mobius/threaded_news_test.go4
11 files changed, 20 insertions, 20 deletions
diff --git a/cmd/mobius-hotline-server/main.go b/cmd/mobius-hotline-server/main.go
index 1ba11ae..aa41279 100644
--- a/cmd/mobius-hotline-server/main.go
+++ b/cmd/mobius-hotline-server/main.go
@@ -246,13 +246,13 @@ func copyFile(src, dst string) error {
if err != nil {
return fmt.Errorf("failed to open source file: %w", err)
}
- defer srcFile.Close()
+ defer func() { _ = srcFile.Close() }()
dstFile, err := os.Create(dst)
if err != nil {
return fmt.Errorf("failed to create destination file: %w", err)
}
- defer dstFile.Close()
+ defer func() { _ = dstFile.Close() }()
if _, err := io.Copy(dstFile, srcFile); err != nil {
return fmt.Errorf("failed to copy file contents: %w", err)
diff --git a/cmd/mobius-hotline-server/main_test.go b/cmd/mobius-hotline-server/main_test.go
index ed63065..dec2ebf 100644
--- a/cmd/mobius-hotline-server/main_test.go
+++ b/cmd/mobius-hotline-server/main_test.go
@@ -166,7 +166,7 @@ func TestFindConfigPath(t *testing.T) {
tmpDir := t.TempDir()
originalDir, err := os.Getwd()
require.NoError(t, err)
- defer os.Chdir(originalDir)
+ defer func() { _ = os.Chdir(originalDir) }()
err = os.Chdir(tmpDir)
require.NoError(t, err)
diff --git a/hotline/files_test.go b/hotline/files_test.go
index 0a7eb7b..9bed670 100644
--- a/hotline/files_test.go
+++ b/hotline/files_test.go
@@ -148,7 +148,7 @@ func TestCalcItemCount(t *testing.T) {
if err != nil {
t.Fatalf("Failed to create temp dir: %v", err)
}
- defer os.RemoveAll(tempDir)
+ defer func() { _ = os.RemoveAll(tempDir) }()
// Create the test directory structure
if err := createTestDirStructure(tempDir, tt.structure); err != nil {
diff --git a/hotline/server.go b/hotline/server.go
index 98b6132..19c7acc 100644
--- a/hotline/server.go
+++ b/hotline/server.go
@@ -235,7 +235,7 @@ func (s *Server) Serve(ctx context.Context, ln net.Listener) error {
})
s.Logger.Info("Connection established", "ip", ipAddr)
- defer conn.Close()
+ defer func() { _ = conn.Close() }()
// Check if we have an existing rate limit for the IP and create one if we do not.
rl, ok := s.rateLimiters[ipAddr]
@@ -247,7 +247,7 @@ func (s *Server) Serve(ctx context.Context, ln net.Listener) error {
// Check if the rate limit is exceeded and close the connection if so.
if !rl.Allow() {
s.Logger.Info("Rate limit exceeded", "RemoteAddr", conn.RemoteAddr())
- conn.Close()
+ _ = conn.Close()
return
}
diff --git a/hotline/tracker.go b/hotline/tracker.go
index 52963bf..edd973d 100644
--- a/hotline/tracker.go
+++ b/hotline/tracker.go
@@ -69,7 +69,7 @@ func register(dialer Dialer, tracker string, tr io.Reader) error {
if err != nil {
return fmt.Errorf("failed to dial tracker: %v", err)
}
- defer conn.Close()
+ defer func() { _ = conn.Close() }()
if _, err := io.Copy(conn, tr); err != nil {
return fmt.Errorf("failed to write to connection: %w", err)
diff --git a/internal/mobius/account_manager.go b/internal/mobius/account_manager.go
index 8859c58..d9169c9 100644
--- a/internal/mobius/account_manager.go
+++ b/internal/mobius/account_manager.go
@@ -18,7 +18,7 @@ func loadFromYAMLFile(path string, data interface{}) error {
if err != nil {
return err
}
- defer fh.Close()
+ defer func() { _ = fh.Close() }()
decoder := yaml.NewDecoder(fh)
return decoder.Decode(data)
@@ -90,7 +90,7 @@ func (am *YAMLAccountManager) Create(account hotline.Account) error {
if err != nil {
return fmt.Errorf("create account file: %w", err)
}
- defer file.Close()
+ defer func() { _ = file.Close() }()
b, err := yaml.Marshal(account)
if err != nil {
diff --git a/internal/mobius/api.go b/internal/mobius/api.go
index 0a20d01..f912f60 100644
--- a/internal/mobius/api.go
+++ b/internal/mobius/api.go
@@ -125,7 +125,7 @@ func (srv *APIServer) OnlineHandler(w http.ResponseWriter, r *http.Request) {
}
}
- json.NewEncoder(w).Encode(users)
+ _ = json.NewEncoder(w).Encode(users)
}
type BanRequest struct {
@@ -169,7 +169,7 @@ func (srv *APIServer) BanHandler(w http.ResponseWriter, r *http.Request) {
}
}
- w.Write([]byte(`{"msg":"banned"}`))
+ _, _ = w.Write([]byte(`{"msg":"banned"}`))
}
func (srv *APIServer) UnbanHandler(w http.ResponseWriter, r *http.Request) {
@@ -198,7 +198,7 @@ func (srv *APIServer) UnbanHandler(w http.ResponseWriter, r *http.Request) {
// TODO: Fallback
}
- w.Write([]byte(`{"msg":"unbanned"}`))
+ _, _ = w.Write([]byte(`{"msg":"unbanned"}`))
}
func (srv *APIServer) ListBannedIPsHandler(w http.ResponseWriter, r *http.Request) {
@@ -208,7 +208,7 @@ func (srv *APIServer) ListBannedIPsHandler(w http.ResponseWriter, r *http.Reques
http.Error(w, "failed to fetch banned IPs", http.StatusInternalServerError)
return
}
- json.NewEncoder(w).Encode(ips)
+ _ = json.NewEncoder(w).Encode(ips)
} else {
// TODO: Fallback
}
@@ -221,7 +221,7 @@ func (srv *APIServer) ListBannedUsernamesHandler(w http.ResponseWriter, r *http.
http.Error(w, "failed to fetch banned usernames", http.StatusInternalServerError)
return
}
- json.NewEncoder(w).Encode(users)
+ _ = json.NewEncoder(w).Encode(users)
} else {
// TODO: Fallback
}
@@ -234,7 +234,7 @@ func (srv *APIServer) ListBannedNicknamesHandler(w http.ResponseWriter, r *http.
http.Error(w, "failed to fetch banned nicknames", http.StatusInternalServerError)
return
}
- json.NewEncoder(w).Encode(nicks)
+ _ = json.NewEncoder(w).Encode(nicks)
} else {
// TODO: Fallback
}
diff --git a/internal/mobius/ban.go b/internal/mobius/ban.go
index 781052b..b4fde95 100644
--- a/internal/mobius/ban.go
+++ b/internal/mobius/ban.go
@@ -43,7 +43,7 @@ func (bf *BanFile) Load() error {
if err != nil {
return fmt.Errorf("open file: %v", err)
}
- defer fh.Close()
+ defer func() { _ = fh.Close() }()
err = yaml.NewDecoder(fh).Decode(&bf.banList)
if err != nil {
diff --git a/internal/mobius/ban_test.go b/internal/mobius/ban_test.go
index 1bf68a4..9f1f5d8 100644
--- a/internal/mobius/ban_test.go
+++ b/internal/mobius/ban_test.go
@@ -52,7 +52,7 @@ func TestAdd(t *testing.T) {
if err != nil {
t.Fatalf("Failed to create temp directory: %v", err)
}
- defer os.RemoveAll(tmpDir) // Clean up the temporary directory.
+ defer func() { _ = os.RemoveAll(tmpDir) }() // Clean up the temporary directory.
// Path to the temporary ban file.
tmpFilePath := path.Join(tmpDir, "banfile.yaml")
diff --git a/internal/mobius/threaded_news.go b/internal/mobius/threaded_news.go
index 67e8282..c7daea4 100644
--- a/internal/mobius/threaded_news.go
+++ b/internal/mobius/threaded_news.go
@@ -218,7 +218,7 @@ func (n *ThreadedNewsYAML) Load() error {
if err != nil {
return err
}
- defer fh.Close()
+ defer func() { _ = fh.Close() }()
n.ThreadedNews = hotline.ThreadedNews{}
diff --git a/internal/mobius/threaded_news_test.go b/internal/mobius/threaded_news_test.go
index 7f5cdaa..2ff8a84 100644
--- a/internal/mobius/threaded_news_test.go
+++ b/internal/mobius/threaded_news_test.go
@@ -52,7 +52,7 @@ func TestLoadFromYAMLFile(t *testing.T) {
if tt.content != "" {
err := os.WriteFile(tt.fileName, []byte(tt.content), 0644)
assert.NoError(t, err)
- defer os.Remove(tt.fileName) // Cleanup the file after the test
+ defer func() { _ = os.Remove(tt.fileName) }() // Cleanup the file after the test
}
var data TestData
@@ -161,7 +161,7 @@ func TestThreadedNewsYAML_CreateGrouping(t *testing.T) {
if err != nil {
t.Fatalf("Failed to create temp directory: %v", err)
}
- defer os.RemoveAll(tmpDir) // Clean up the temporary directory.
+ defer func() { _ = os.RemoveAll(tmpDir) }() // Clean up the temporary directory.
// Path to the temporary ban file.
tmpFilePath := path.Join(tmpDir, "ThreadedNews.yaml")