From fb3c9e9635832f94d71bb18c37136411ce72e249 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 26 Jul 2019 16:36:48 +0200 Subject: [PATCH] Adjust launcher/service apply yet another time * Only reconnect later if the launcher/service is actually running * Don't try to reconnect if systemd unit is not available --- widgets/settings/settings.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/widgets/settings/settings.cpp b/widgets/settings/settings.cpp index 5f60a53..53f5ca0 100644 --- a/widgets/settings/settings.cpp +++ b/widgets/settings/settings.cpp @@ -133,7 +133,7 @@ Launcher::LauncherStatus Launcher::apply( if (reconnectRequired) { if (launcher->isActiveFor(minActiveTimeInSeconds)) { connection.reconnect(); - } else { + } else if (isRunning) { // give the service (which has just started) a few seconds to initialize connection.reconnectLater(minActiveTimeInSeconds * 1000); } @@ -422,9 +422,10 @@ Systemd::ServiceStatus Systemd::apply( if (!service) { return ServiceStatus{}; } - const auto isRelevant = service->isSystemdAvailable() && service->isUnitAvailable() && connection.isLocal(); - const auto isRunning = service->isRunning(); - const auto consideredForReconnect = considerForReconnect && isRelevant; + const auto isRelevant = service->isSystemdAvailable() && connection.isLocal(); + const auto unitAvailable = service->isUnitAvailable(); + const auto isRunning = unitAvailable && service->isRunning(); + const auto consideredForReconnect = considerForReconnect && isRelevant && unitAvailable; if (currentConnectionSettings && (!considerForReconnect || !isRelevant || isRunning)) { // ensure auto-reconnect is configured according to settings @@ -439,7 +440,7 @@ Systemd::ServiceStatus Systemd::apply( if (reconnectRequired) { if (service->isActiveWithoutSleepFor(minActiveTimeInSeconds)) { connection.reconnect(); - } else { + } else if (isRunning) { // give the service (which has just started) a few seconds to initialize connection.reconnectLater(minActiveTimeInSeconds * 1000); }