Blob Blame History Raw
From fbff058fcdf92bd84331259078f02d1d27509680 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.com>
Date: Tue, 6 Mar 2018 13:04:00 +0000
Subject: [PATCH 1/1] policy: fix blocking autoconnect for no-secrets

The condition was obviosly inverted, blocking autoconnect when
it should not, and not blocking it when it should.

[thaller@redhat.com: modified original patch and rewrite commit message]

Fixes: e2c8ef45ac9fba8d4f5722ab10831bf42085a110

https://bugzilla.gnome.org/show_bug.cgi?id=794014
(cherry picked from commit d2f019409d0906814ccd2050ce39609903f879f7)
(cherry picked from commit 0824a327039d7fe7f9723f316da30538c7b688d0)
---
 src/nm-policy.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/nm-policy.c b/src/nm-policy.c
index 4d0ef91a1..b73e04cb2 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -1758,10 +1758,16 @@ device_state_changed (NMDevice *device,
 				 * been consulted, and it may be able to provide the secrets.
 				 *
 				 * We detect this by using a version-id of the agent-manager, which increments
-				 * whenever new agents register. */
+				 * whenever new agents register. Note that the agent-manager's version-id is
+				 * never zero and strictly increasing.
+				 *
+				 * A connection's version-id of zero means that the connection never tried to request secrets.
+				 * That can happen when nm_settings_connection_get_secrets() fails early without actually
+				 * consulting any agents.
+				 */
 				con_v = nm_settings_connection_get_last_secret_agent_version_id (connection);
 				if (   con_v == 0
-				    || con_v != nm_agent_manager_get_agent_version_id (priv->agent_mgr))
+				    || con_v == nm_agent_manager_get_agent_version_id (priv->agent_mgr))
 					block_no_secrets = TRUE;
 			}
 
-- 
2.14.3