Fix max expiry when provided expiry is 0

Previously, we did not properly handle the case where the provided
expiry was zero and the max expiry was configured to be nonzero; add an
additional check to cover this case.

Fixes #111.
This commit is contained in:
mutantmonkey 2016-11-02 19:31:32 -07:00
parent 0e768cc6f4
commit 647aa2c0f6
2 changed files with 4 additions and 2 deletions

View File

@ -450,7 +450,9 @@ func TestPostJSONUploadMaxExpiry(t *testing.T) {
mux := setup() mux := setup()
Config.maxExpiry = 300 Config.maxExpiry = 300
testExpiries := []string{"86400", "-150"} // include 0 to test edge case
// https://github.com/andreimarcu/linx-server/issues/111
testExpiries := []string{"86400", "-150", "0"}
for _, expiry := range testExpiries { for _, expiry := range testExpiries {
w := httptest.NewRecorder() w := httptest.NewRecorder()

View File

@ -349,7 +349,7 @@ func parseExpiry(expStr string) time.Duration {
if err != nil { if err != nil {
return time.Duration(Config.maxExpiry) * time.Second return time.Duration(Config.maxExpiry) * time.Second
} else { } else {
if Config.maxExpiry > 0 && expiry > Config.maxExpiry { if Config.maxExpiry > 0 && (expiry > Config.maxExpiry || expiry == 0) {
expiry = Config.maxExpiry expiry = Config.maxExpiry
} }
return time.Duration(expiry) * time.Second return time.Duration(expiry) * time.Second