From d56491ab3ac7369c2770d1b2c08cd30a0c2021ec Mon Sep 17 00:00:00 2001 From: astaxie Date: Wed, 20 May 2015 11:07:23 +0800 Subject: [PATCH] sync beeApp.Server to graceful --- app.go | 11 +++++++---- grace/grace.go | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app.go b/app.go index 4740e7e5..6c1eeab6 100644 --- a/app.go +++ b/app.go @@ -78,15 +78,19 @@ func (app *App) Run() { } } else { if Graceful { + app.Server.Addr = addr + app.Server.Handler = app.Handlers + app.Server.ReadTimeout = time.Duration(HttpServerTimeOut) * time.Second + app.Server.WriteTimeout = time.Duration(HttpServerTimeOut) * time.Second if EnableHttpTLS { go func() { time.Sleep(20 * time.Microsecond) if HttpsPort != 0 { addr = fmt.Sprintf("%s:%d", HttpAddr, HttpsPort) + app.Server.Addr = addr } server := grace.NewServer(addr, app.Handlers) - server.Server.ReadTimeout = time.Duration(HttpServerTimeOut) * time.Second - server.Server.WriteTimeout = time.Duration(HttpServerTimeOut) * time.Second + server.Server = app.Server err := server.ListenAndServeTLS(HttpCertFile, HttpKeyFile) if err != nil { BeeLogger.Critical("ListenAndServeTLS: ", err) @@ -98,8 +102,7 @@ func (app *App) Run() { if EnableHttpListen { go func() { server := grace.NewServer(addr, app.Handlers) - server.Server.ReadTimeout = time.Duration(HttpServerTimeOut) * time.Second - server.Server.WriteTimeout = time.Duration(HttpServerTimeOut) * time.Second + server.Server = app.Server if ListenTCP4 && HttpAddr == "" { server.Network = "tcp4" } diff --git a/grace/grace.go b/grace/grace.go index e77112d0..33053c4b 100644 --- a/grace/grace.go +++ b/grace/grace.go @@ -99,7 +99,7 @@ func init() { } type graceServer struct { - http.Server + *http.Server GraceListener net.Listener SignalHooks map[int]map[os.Signal][]func() tlsInnerListener *graceListener @@ -151,7 +151,7 @@ func NewServer(addr string, handler http.Handler) (srv *graceServer) { state: STATE_INIT, Network: "tcp", } - + srv.Server = &http.Server{} srv.Server.Addr = addr srv.Server.ReadTimeout = DefaultReadTimeOut srv.Server.WriteTimeout = DefaultWriteTimeOut