diff options
author | Simon Frei <freisim93@gmail.com> | 2021-07-03 18:26:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-03 18:26:55 +0200 |
commit | 1921533c4cae1873d3cd63a28a590075ac7a48fc (patch) | |
tree | 0fc7d07d1a29708b0c186dad035c4fd56acd59cf | |
parent | 89e762fd6e4a7593d909cae5da189e1b88f38d31 (diff) |
lib/connections: Fully dial resumed devices (#7798)
-rw-r--r-- | lib/connections/service.go | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/connections/service.go b/lib/connections/service.go index 8613626ce8..3848b26168 100644 --- a/lib/connections/service.go +++ b/lib/connections/service.go @@ -786,13 +786,23 @@ func (s *service) CommitConfiguration(from, to config.Configuration) bool { func (s *service) checkAndSignalConnectLoopOnUpdatedDevices(from, to config.Configuration) { oldDevices := from.DeviceMap() + dial := false + s.dialNowDevicesMut.Lock() for _, dev := range to.Devices { - oldDev, ok := oldDevices[dev.DeviceID] - if !ok || !util.EqualStrings(oldDev.Addresses, dev.Addresses) { - s.scheduleDialNow() - break + if dev.Paused { + continue } + if oldDev, ok := oldDevices[dev.DeviceID]; !ok || oldDev.Paused { + s.dialNowDevices[dev.DeviceID] = struct{}{} + dial = true + } else if !util.EqualStrings(oldDev.Addresses, dev.Addresses) { + dial = true + } + } + if dial { + s.scheduleDialNow() } + s.dialNowDevicesMut.Unlock() } func (s *service) scheduleDialNow() { |