1
0
Fork 0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-04-27 16:55:09 +02:00

server: Prevent adding Listeners after Close

Check done after calling trackListener to prevent the listener from
being registered after the server is closed.
This commit is contained in:
Adnan Maolood 2021-02-15 20:18:08 -05:00
parent a05fa6d6bd
commit 1d6cbddc5b

View File

@ -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 {