From c2d6e9e8f1603f41c1aebaad5a6ec7023e34edc7 Mon Sep 17 00:00:00 2001 From: Arceliar Date: Sun, 24 May 2020 14:09:06 -0500 Subject: [PATCH] close listener when a multicast interface is removed --- src/multicast/multicast.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/multicast/multicast.go b/src/multicast/multicast.go index fc7b1373..ad097b86 100644 --- a/src/multicast/multicast.go +++ b/src/multicast/multicast.go @@ -136,6 +136,7 @@ func (m *Multicast) _stop() error { m.log.Infoln("Stopping multicast module") m.isOpen = false for name := range m.listeners { + m.listeners[name].listener.Listener.Close() close(m.listeners[name].stop) delete(m.listeners, name) } @@ -213,6 +214,7 @@ func (m *Multicast) _monitorInterfaceChanges() { for name, intf := range m.listeners { if _, ok := m._interfaces[name]; !ok { // This is a disappeared interface. Stop the announcer. + intf.listener.Listener.Close() close(intf.stop) delete(m.listeners, name) m.log.Debugln("Stopped multicasting on", name)