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")