Fix: deadlock for openvpn, dns and publicip loops

This commit is contained in:
Quentin McGaw (desktop)
2021-07-27 14:12:22 +00:00
parent 564cc2b0bc
commit b98f2456c0
3 changed files with 7 additions and 3 deletions

View File

@@ -23,12 +23,13 @@ func (s *State) GetSettings() (settings configuration.OpenVPN) {
func (s *State) SetSettings(ctx context.Context, settings configuration.OpenVPN) (
outcome string) {
s.settingsMu.Lock()
defer s.settingsMu.Unlock()
settingsUnchanged := reflect.DeepEqual(s.settings, settings)
if settingsUnchanged {
s.settingsMu.Unlock()
return "settings left unchanged"
}
s.settings = settings
s.settingsMu.Unlock()
_, _ = s.statusApplier.ApplyStatus(ctx, constants.Stopped)
outcome, _ = s.statusApplier.ApplyStatus(ctx, constants.Running)
return outcome