From fd8612cfc6a976c6b1ad83b56613e2a873c2d7c9 Mon Sep 17 00:00:00 2001 From: eleksir Date: Sat, 4 Apr 2026 14:44:48 +0300 Subject: [PATCH] Log all requests, not only ones that hit backup target, fix comments to be docstring friendly. --- internal/backer/newServer.go | 6 +++++- internal/log/main.go | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/backer/newServer.go b/internal/backer/newServer.go index 7edf156..7e362d2 100644 --- a/internal/backer/newServer.go +++ b/internal/backer/newServer.go @@ -78,6 +78,8 @@ func NewServer(configPath string) (*serverWrapper, error) { //nolint: revive w.Header().Set("WWW-Authenticate", `Basic realm="restricted", charset="UTF-8"`) http.Error(w, "Unauthorized", http.StatusUnauthorized) + log.Infof("Access denied from %s to %s (no username or password given)", r.RemoteAddr, r.RequestURI) + return } @@ -88,6 +90,8 @@ func NewServer(configPath string) (*serverWrapper, error) { //nolint: revive w.Header().Set("WWW-Authenticate", `Basic realm="restricted", charset="UTF-8"`) http.Error(w, "Unauthorized", http.StatusUnauthorized) + log.Infof("Access denied from %s to %s (username and/or password incorrect)", r.RemoteAddr, r.RequestURI) + return } @@ -273,8 +277,8 @@ func getCompressionAlgorithm(requestedExt string) string { } } -// serverWrapper wraps http.Server to intercept and classify errors. type ( + // serverWrapper wraps [http.Server] to intercept and classify errors. serverWrapper struct { *http.Server } diff --git a/internal/log/main.go b/internal/log/main.go index 28a4e03..48e18f8 100644 --- a/internal/log/main.go +++ b/internal/log/main.go @@ -16,7 +16,7 @@ var ( Log *os.File ) -// slogWriter implements io.Writer to redirect standard log to slog. +// slogWriter implements [io.Writer] to redirect standard log to slog. type ( slogWriter struct { handler slog.Handler @@ -145,7 +145,7 @@ func DebugLogger() *log.Logger { return log.New(&slogWriter{handler: handler}, "", 0) } -// Write implements io.Writer. It differentiates TLS/SSL errors from other errors. +// Write implements [io.Writer]. It differentiates TLS/SSL errors from other errors. // TLS-related errors are logged at debug level, while other errors (handler issues, // unexpected behavior) are logged at warn level. func (w *slogWriter) Write(p []byte) (int, error) {