lib/connections, lib/nat: Correctly dis-/enable nat (fixes #6552) (#6719)

This commit is contained in:
Simon Frei
2020-06-07 20:29:53 +02:00
committed by GitHub
parent 74ea9c5f67
commit 3065b127b5
3 changed files with 41 additions and 12 deletions
+1 -11
View File
@@ -123,7 +123,6 @@ type service struct {
tlsDefaultCommonName string
limiter *limiter
natService *nat.Service
natServiceToken *suture.ServiceToken
evLogger events.Logger
listenersMut sync.RWMutex
@@ -188,6 +187,7 @@ func NewService(cfg config.Wrapper, myID protocol.DeviceID, mdl Model, tlsCfg *t
service.Add(util.AsService(service.connect, fmt.Sprintf("%s/connect", service)))
service.Add(util.AsService(service.handle, fmt.Sprintf("%s/handle", service)))
service.Add(service.listenerSupervisor)
service.Add(service.natService)
return service
}
@@ -652,16 +652,6 @@ func (s *service) CommitConfiguration(from, to config.Configuration) bool {
}
s.listenersMut.Unlock()
if to.Options.NATEnabled && s.natServiceToken == nil {
l.Debugln("Starting NAT service")
token := s.Add(s.natService)
s.natServiceToken = &token
} else if !to.Options.NATEnabled && s.natServiceToken != nil {
l.Debugln("Stopping NAT service")
s.Remove(*s.natServiceToken)
s.natServiceToken = nil
}
return true
}