From 5ab531edb7188fdf4610c22a9659757519adcbc3 Mon Sep 17 00:00:00 2001 From: David Irvine Date: Thu, 22 Dec 2016 22:38:20 -0500 Subject: [PATCH 1/2] Fixups; default to :http for ListenAndServe, remove unused vars --- server.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/server.go b/server.go index e6ba850..a446e89 100644 --- a/server.go +++ b/server.go @@ -100,11 +100,10 @@ func NewWithServer(s *http.Server) *GracefulServer { func NewWithOptions(o Options) *GracefulServer { var listener *GracefulListener if o.Listener != nil { - g, ok := o.Listener.(*GracefulListener) - if !ok { - listener = NewListener(o.Listener) + if gl, ok := o.Listener.(*GracefulListener); ok { + listener = gl } else { - listener = g + listener = NewListener(o.Listener) } } if o.Server == nil { @@ -138,11 +137,15 @@ func (gs *GracefulServer) BlockingClose() bool { // ListenAndServe provides a graceful equivalent of net/http.Serve.ListenAndServe. func (gs *GracefulServer) ListenAndServe() error { if gs.listener == nil { - oldListener, err := net.Listen("tcp", gs.Addr) + addr := gs.Addr + if addr == "" { + addr = ":http" + } + ln, err := net.Listen("tcp", addr) if err != nil { return err } - gs.listener = NewListener(oldListener.(*net.TCPListener)) + gs.listener = NewListener(ln.(*net.TCPListener)) } return gs.Serve(gs.listener) } @@ -150,10 +153,6 @@ func (gs *GracefulServer) ListenAndServe() error { // ListenAndServeTLS provides a graceful equivalent of net/http.Serve.ListenAndServeTLS. func (gs *GracefulServer) ListenAndServeTLS(certFile, keyFile string) error { // direct lift from net/http/server.go - addr := gs.Addr - if addr == "" { - addr = ":https" - } config := &tls.Config{} if gs.TLSConfig != nil { *config = *gs.TLSConfig From 811f5b3cefd612344b3efc7830bb8862b043f82b Mon Sep 17 00:00:00 2001 From: David Irvine Date: Fri, 23 Dec 2016 09:32:49 -0500 Subject: [PATCH 2/2] Set keep-alives on connections from ListenAndServe() --- server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.go b/server.go index a446e89..bd3ec03 100644 --- a/server.go +++ b/server.go @@ -145,7 +145,7 @@ func (gs *GracefulServer) ListenAndServe() error { if err != nil { return err } - gs.listener = NewListener(ln.(*net.TCPListener)) + gs.listener = NewListener(TCPKeepAliveListener{ln.(*net.TCPListener)}) } return gs.Serve(gs.listener) }