chore: rebuild InboundListener

This commit is contained in:
wwqgtxx
2022-12-04 21:53:13 +08:00
parent 8144373725
commit 62226e8b3d
14 changed files with 138 additions and 96 deletions

View File

@ -135,31 +135,11 @@ func GetGeneral() *config.General {
return general
}
func updateListeners(listeners map[string]C.NewListener) {
func updateListeners(listeners map[string]C.InboundListener) {
tcpIn := tunnel.TCPIn()
udpIn := tunnel.UDPIn()
skipNames := map[string]struct{}{}
for name, oldListener := range tunnel.Listeners() {
if newListener, ok := listeners[name]; ok {
if newListener.Config() == oldListener.Config() {
listeners[name] = oldListener
skipNames[name] = struct{}{}
continue
}
}
_ = oldListener.Close()
}
for name, newListener := range listeners {
if _, ok := skipNames[name]; ok {
continue
}
if err := newListener.Listen(tcpIn, udpIn); err != nil {
log.Errorln("Listener %s listen err: %s", newListener.Name(), err.Error())
}
}
tunnel.UpdateListeners(listeners)
listener.PatchInboundListeners(listeners, tcpIn, udpIn, true)
}
func updateExperimental(c *config.Config) {