summary refs log tree commit diff
path: root/src/settings/nm-settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings/nm-settings.c')
-rw-r--r--src/settings/nm-settings.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
index e23e8d13..733e9145 100644
--- a/src/settings/nm-settings.c
+++ b/src/settings/nm-settings.c
@@ -135,6 +135,7 @@ enum {
 	CONNECTION_REMOVED,
 	CONNECTION_VISIBILITY_CHANGED,
 	CONNECTIONS_LOADED,
+	AGENT_REGISTERED,
 
 	NEW_CONNECTION, /* exported, not used internally */
 	LAST_SIGNAL
@@ -699,6 +700,18 @@ connection_visibility_changed (NMSettingsConnection *connection,
 	               connection);
 }
 
+static void
+secret_agent_registered (NMAgentManager *agent_mgr,
+                         NMSecretAgent *agent,
+                         gpointer user_data)
+{
+	/* Re-emit for listeners like NMPolicy */
+	g_signal_emit (NM_SETTINGS (user_data),
+	               signals[AGENT_REGISTERED],
+	               0,
+	               agent);
+}
+
 #define NM_DBUS_SERVICE_OPENCONNECT    "org.freedesktop.NetworkManager.openconnect"
 #define NM_OPENCONNECT_KEY_GATEWAY "gateway"
 #define NM_OPENCONNECT_KEY_COOKIE "cookie"
@@ -773,6 +786,9 @@ claim_connection (NMSettings *self,
 	/* Read timestamp from look-aside file and put it into the connection's data */
 	nm_settings_connection_read_and_fill_timestamp (connection);
 
+	/* Read seen-bssids from look-aside file and put it into the connection's data */
+	nm_settings_connection_read_and_fill_seen_bssids (connection);
+
 	/* Ensure it's initial visibility is up-to-date */
 	nm_settings_connection_recheck_visibility (connection);
 
@@ -1527,6 +1543,8 @@ nm_settings_init (NMSettings *self)
 	 * recreated often.
 	 */
 	priv->agent_mgr = nm_agent_manager_get ();
+
+	g_signal_connect (priv->agent_mgr, "agent-registered", G_CALLBACK (secret_agent_registered), self);
 }
 
 static void
@@ -1690,6 +1708,16 @@ nm_settings_class_init (NMSettingsClass *class)
 	                              g_cclosure_marshal_VOID__VOID,
 	                              G_TYPE_NONE, 0);
 
+	signals[AGENT_REGISTERED] =
+		g_signal_new (NM_SETTINGS_SIGNAL_AGENT_REGISTERED,
+		              G_OBJECT_CLASS_TYPE (object_class),
+		              G_SIGNAL_RUN_FIRST,
+		              G_STRUCT_OFFSET (NMSettingsClass, agent_registered),
+		              NULL, NULL,
+		              g_cclosure_marshal_VOID__OBJECT,
+		              G_TYPE_NONE, 1, G_TYPE_OBJECT);
+
+
 	signals[NEW_CONNECTION] = 
 	                g_signal_new ("new-connection",
 	                              G_OBJECT_CLASS_TYPE (object_class),