Browse Source

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.
pull/112/head
mutantmonkey 8 years ago
parent
commit
647aa2c0f6
  1. 4
      server_test.go
  2. 2
      upload.go

4
server_test.go

@ -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()

2
upload.go

@ -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

Loading…
Cancel
Save