From dd6f177611a74042fd4a97400a305d2b1cc93b5d Mon Sep 17 00:00:00 2001 From: Charles-Antoine Mathieu Date: Wed, 18 Nov 2020 10:34:31 +0100 Subject: [PATCH] Fix MaxTTL config check and missing exit on invalid config #342 --- server/cmd/root.go | 1 + server/common/config.go | 2 +- server/common/config_test.go | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/cmd/root.go b/server/cmd/root.go index 7bdc450a..28198064 100644 --- a/server/cmd/root.go +++ b/server/cmd/root.go @@ -97,6 +97,7 @@ func initConfig() { config, err = common.LoadConfiguration(configPath) if err != nil { fmt.Printf("Unable to load config : %s\n", err) + os.Exit(1) } } diff --git a/server/common/config.go b/server/common/config.go index c5758b0d..4b89ca7f 100644 --- a/server/common/config.go +++ b/server/common/config.go @@ -183,7 +183,7 @@ func (config *Configuration) Initialize() (err error) { } } - if config.DefaultTTL > config.MaxTTL { + if config.MaxTTL > 0 && config.DefaultTTL > 0 && config.MaxTTL < config.DefaultTTL { return fmt.Errorf("DefaultTTL should not be more than MaxTTL") } diff --git a/server/common/config_test.go b/server/common/config_test.go index 482b2adc..618469d0 100644 --- a/server/common/config_test.go +++ b/server/common/config_test.go @@ -103,6 +103,15 @@ func TestInitializeInvalidDefaultTTL(t *testing.T) { require.Error(t, err, "able to initialize invalid config") } +func TestInitializeInfiniteMaxTTL(t *testing.T) { + config := NewConfiguration() + config.DefaultTTL = 10 * 86400 + config.MaxTTL = -1 + + err := config.Initialize() + require.NoError(t, err, "unable to initialize valid config") +} + func TestDisableAutoClean(t *testing.T) { config := NewConfiguration() require.True(t, config.IsAutoClean(), "invalid auto clean status")