aboutsummaryrefslogtreecommitdiff
path: root/go/weed/volume.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/weed/volume.go')
-rw-r--r--go/weed/volume.go18
1 files changed, 10 insertions, 8 deletions
diff --git a/go/weed/volume.go b/go/weed/volume.go
index dcc2c1097..85ee4618e 100644
--- a/go/weed/volume.go
+++ b/go/weed/volume.go
@@ -32,7 +32,7 @@ var (
publicUrl = cmdVolume.Flag.String("publicUrl", "", "Publicly accessible <ip|server_name>:<port>")
masterNode = cmdVolume.Flag.String("mserver", "localhost:9333", "master server location")
vpulse = cmdVolume.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats, must be smaller than or equal to the master's setting")
- vReadTimeout = cmdVolume.Flag.Int("readTimeout", 30, "connection read timeout in seconds. Increase this if uploading large files.")
+ vTimeout = cmdVolume.Flag.Int("idleTimeout", 10, "connection idle seconds")
vMaxCpu = cmdVolume.Flag.Int("maxCpu", 0, "maximum number of CPUs. 0 means all available CPUs")
dataCenter = cmdVolume.Flag.String("dataCenter", "", "current volume server's data center name")
rack = cmdVolume.Flag.String("rack", "", "current volume server's rack name")
@@ -79,14 +79,16 @@ func runVolume(cmd *Command, args []string) bool {
)
glog.V(0).Infoln("Start Weed volume server", VERSION, "at http://"+*ip+":"+strconv.Itoa(*vport))
- srv := &http.Server{
- Addr: *ip + ":" + strconv.Itoa(*vport),
- Handler: r,
- ReadTimeout: (time.Duration(*vReadTimeout) * time.Second),
- }
- e := srv.ListenAndServe()
+ listener, e := util.NewListener(
+ *ip+":"+strconv.Itoa(*vport),
+ time.Duration(*vTimeout)*time.Second,
+ )
if e != nil {
- glog.Fatalf("Fail to start:%s", e.Error())
+ glog.Fatalf(e.Error())
+ }
+
+ if e := http.Serve(listener, r); e != nil {
+ glog.Fatalf("Fail to serve:%s", e.Error())
}
return true
}