From 1921533c4cae1873d3cd63a28a590075ac7a48fc Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Sat, 3 Jul 2021 18:26:55 +0200 Subject: [PATCH] lib/connections: Fully dial resumed devices (#7798) --- lib/connections/service.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/connections/service.go b/lib/connections/service.go index 8613626ce..3848b2616 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() {