From acd3a632139ed4985ab0b536a7609bbf1b2166ec Mon Sep 17 00:00:00 2001 From: Marius Date: Fri, 16 Oct 2015 20:02:08 +0200 Subject: [PATCH] Add options for read timeout to tusd command Fixes #24 --- cmd/tusd/main.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/cmd/tusd/main.go b/cmd/tusd/main.go index 6f21e27..bc4b2b0 100644 --- a/cmd/tusd/main.go +++ b/cmd/tusd/main.go @@ -8,6 +8,7 @@ import ( "log" "net/http" "os" + "time" ) var httpHost string @@ -16,6 +17,7 @@ var maxSize int64 var dir string var storeSize int64 var basepath string +var timeout int64 var stdout = log.New(os.Stdout, "[tusd] ", 0) var stderr = log.New(os.Stderr, "[tusd] ", 0) @@ -27,6 +29,7 @@ func init() { flag.StringVar(&dir, "dir", "./data", "Directory to store uploads in") flag.Int64Var(&storeSize, "store-size", 0, "Size of disk space allowed to storage") flag.StringVar(&basepath, "base-path", "/files/", "Basepath of the hTTP server") + flag.Int64Var(&timeout, "timeout", 30*1000, "Read timeout for connections in milliseconds") flag.Parse() } @@ -78,8 +81,13 @@ func main() { }() http.Handle(basepath, http.StripPrefix(basepath, handler)) - err = http.ListenAndServe(address, nil) - if err != nil { + + server := &http.Server{ + Addr: address, + ReadTimeout: time.Duration(timeout) * time.Millisecond, + } + + if err = server.ListenAndServe(); err != nil { stderr.Fatalf("Unable to listen: %s", err) } }