ipn/ipnlocal: remove web client listeners after close

This prevents a panic in some cases where WebClientShutdown is called
multiple times.

Updates tailscale/corp#14335

Signed-off-by: Will Norris <will@tailscale.com>
This commit is contained in:
Will Norris 2023-11-14 12:07:51 -08:00 committed by Will Norris
parent 7c99a1763b
commit 79719f05a9

View File

@ -79,8 +79,9 @@ func (b *LocalBackend) WebClientShutdown() {
b.mu.Lock()
server := b.webClient.server
b.webClient.server = nil
for _, ln := range b.webClientListeners {
for ap, ln := range b.webClientListeners {
ln.Close()
delete(b.webClientListeners, ap)
}
b.mu.Unlock() // release lock before shutdown
if server != nil {