Merge pull request #1302 from codysoyland/http-handler-close-redux

Close HTTP handler gracefully (Fixes #1018)
This commit is contained in:
Cody Soyland 2018-05-18 09:29:10 -05:00 committed by GitHub
commit 4fe29827ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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