Close HTTP handler gracefully (Fixes #1018)

This commit is contained in:
Cody Soyland 2017-12-19 11:01:36 -06:00
parent 0ad4272b35
commit 2345ae0004

View file

@ -201,8 +201,13 @@ func (s *Server) Open() error {
// Serve HTTP.
go func() {
err := http.Serve(ln, s.Handler)
if err != nil {
server := &http.Server{Handler: s.Handler}
go func() {
<-s.closing
server.Close()
}()
err := server.Serve(ln)
if err != nil && err.Error() != "http: Server closed" {
s.Logger().Printf("HTTP handler terminated with error: %s\n", err)
}
}()