From bbd76a3bcc88691501490404f92236338f13b67a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 21 Feb 2023 12:16:27 +0100 Subject: [PATCH] fixup! policy: track autoconnect retries per Device x Connection --- src/core/settings/nm-settings-connection.c | 32 +++++++++++++--------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/core/settings/nm-settings-connection.c b/src/core/settings/nm-settings-connection.c index 696575c2a9..b2a32cf901 100644 --- a/src/core/settings/nm-settings-connection.c +++ b/src/core/settings/nm-settings-connection.c @@ -2513,22 +2513,28 @@ nm_settings_connection_autoconnect_blocked_reason_set(NMSettingsConnection NMSettingsAutoconnectBlockedReason reason, gboolean set) { - NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE(self); NMSettingsAutoconnectBlockedReason v; - char buf[100]; + NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE(self); + char buf1[100]; + char buf2[100]; + + nm_assert(reason); v = priv->autoconnect_blocked_reason; - if (set) { - priv->autoconnect_blocked_reason = priv->autoconnect_blocked_reason | reason; - _LOGD("autoconnect: blocked reason: %s", - nm_settings_autoconnect_blocked_reason_to_string(reason, buf, sizeof(buf))); - return v != priv->autoconnect_blocked_reason; - } else { - priv->autoconnect_blocked_reason = priv->autoconnect_blocked_reason & ~reason; - _LOGD("autoconnect: unblocked reason: %s", - nm_settings_autoconnect_blocked_reason_to_string(reason, buf, sizeof(buf))); - return v != priv->autoconnect_blocked_reason; - } + if (set) + v = v | reason; + else + v = v & ~reason; + + if (priv->autoconnect_blocked_reason == v) + return FALSE; + + _LOGD("autoconnect: %s blocked reason: %s (now %s)", + set ? "set" : "unset", + nm_settings_autoconnect_blocked_reason_to_string(reason, buf1, sizeof(buf1)), + nm_settings_autoconnect_blocked_reason_to_string(v, buf2, sizeof(buf2))); + priv->autoconnect_blocked_reason = v; + return TRUE; } gboolean