diff options
| author | Adnan Maolood <[email protected]> | 2021-02-15 20:18:08 -0500 |
|---|---|---|
| committer | Adnan Maolood <[email protected]> | 2021-02-15 20:19:44 -0500 |
| commit | 1d6cbddc5be1d34692d12c5d66e97cf2abf04445 (patch) | |
| tree | 6c9bab6dbb1238cc2e040396f1bcac1298258997 | |
| parent | server: Avoid creating a new Listener after Close (diff) | |
| download | go-gemini-1d6cbddc5be1d34692d12c5d66e97cf2abf04445.tar.xz go-gemini-1d6cbddc5be1d34692d12c5d66e97cf2abf04445.zip | |
server: Prevent adding Listeners after Close
Check done after calling trackListener to prevent the listener from
being registered after the server is closed.
| -rw-r--r-- | server.go | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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 { |