From 5931438274d663e7883a791610ee031e75022da0 Mon Sep 17 00:00:00 2001 From: Pea Nut <peanut2@systemli.org> Date: Wed, 17 Jul 2024 11:59:52 +0200 Subject: [PATCH] Close log file during teardown cli (cmd/bitmask-helper/main.go and) and helpers (pkg/pickle/helpers.go) were also fixed. --- cmd/bitmask-helper/main.go | 1 + pkg/backend/init.go | 2 ++ pkg/config/logger.go | 10 ++++++++-- pkg/pickle/helpers.go | 1 + pkg/vpn/bitmask.go | 2 ++ 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cmd/bitmask-helper/main.go b/cmd/bitmask-helper/main.go index 620f9e59..41803c57 100644 --- a/cmd/bitmask-helper/main.go +++ b/cmd/bitmask-helper/main.go @@ -35,6 +35,7 @@ var ( func main() { config.LogPath = path.Join(config.Path, logFile) config.ConfigureLogger() + defer config.CloseLogger() helper.Version = Version helper.AppName = AppName diff --git a/pkg/backend/init.go b/pkg/backend/init.go index b07e964e..6e236abd 100644 --- a/pkg/backend/init.go +++ b/pkg/backend/init.go @@ -69,12 +69,14 @@ func initializeBitmask(errCh chan string, opts *InitOpts) { b, err := bitmask.InitializeBitmask(ctx.cfg) if err != nil { + config.CloseLogger() log.Error(). Err(err). Msg("Could not initialize bitmask") errCh <- err.Error() return } + // right now we just get autostart from an init flag, // but we want to be able to persist that option from the preferences // pane diff --git a/pkg/config/logger.go b/pkg/config/logger.go index 6ddee49a..af95c10d 100644 --- a/pkg/config/logger.go +++ b/pkg/config/logger.go @@ -22,10 +22,12 @@ import ( "github.com/rs/zerolog/log" ) +var logFile *os.File + func ConfigureLogger() { os.MkdirAll(Path, 0750) - runLogFile, _ := os.OpenFile( + logFile, _ = os.OpenFile( LogPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644, @@ -35,7 +37,7 @@ func ConfigureLogger() { TimeFormat: "2006-01-02T15:04:05.999Z07:00", } - multi := zerolog.MultiLevelWriter(consoleWriter, runLogFile) + multi := zerolog.MultiLevelWriter(consoleWriter, logFile) log.Logger = zerolog.New(multi).With().Timestamp().Logger() envLogLevel := os.Getenv("LOG_LEVEL") @@ -52,3 +54,7 @@ func ConfigureLogger() { Str("hint", "you can change the log level with env LOG_LEVEL=INFO|DEBUG|TRACE"). Msg("Enabling logging") } + +func CloseLogger() { + logFile.Close() +} diff --git a/pkg/pickle/helpers.go b/pkg/pickle/helpers.go index a79b6ab4..2e39644f 100644 --- a/pkg/pickle/helpers.go +++ b/pkg/pickle/helpers.go @@ -132,6 +132,7 @@ func dumpHelper(fname, dest string, isExec bool) { func InstallHelpers() { // logger is not configured at this point config.ConfigureLogger() + defer config.CloseLogger() // this function can be called by command line argument: riseup-vpn --install-helpers log.Info().Msg("Installing helpers") diff --git a/pkg/vpn/bitmask.go b/pkg/vpn/bitmask.go index 807990ac..eb5a9dcf 100644 --- a/pkg/vpn/bitmask.go +++ b/pkg/vpn/bitmask.go @@ -158,6 +158,8 @@ func (b *Bitmask) GetSnowflakeCh() <-chan *snowflake.StatusEvent { // Close the connection to bitmask, and does cleanup of temporal files func (b *Bitmask) Close() { log.Info().Msg("Close: cleanup and vpn shutdown...") + defer config.CloseLogger() + err := b.StopVPN() if err != nil { log.Warn(). -- GitLab