From 1d6cbddc5be1d34692d12c5d66e97cf2abf04445 Mon Sep 17 00:00:00 2001 From: Adnan Maolood Date: Mon, 15 Feb 2021 20:18:08 -0500 Subject: [PATCH] server: Prevent adding Listeners after Close Check done after calling trackListener to prevent the listener from being registered after the server is closed. --- server.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server.go b/server.go index 32afe27..f461d4a 100644 --- a/server.go +++ b/server.go @@ -163,13 +163,13 @@ func (srv *Server) deleteListener(l *net.Listener) { func (srv *Server) Serve(l net.Listener) error { defer l.Close() + srv.trackListener(&l) + defer srv.deleteListener(&l) + if atomic.LoadInt32(&srv.done) == 1 { return ErrServerClosed } - srv.trackListener(&l) - defer srv.deleteListener(&l) - var tempDelay time.Duration // how long to sleep on accept failure for {