core/connection: don't emit Updated on Connection.GetSecrets

The secrets are transient -- when they are loaded into the connections and
subsequently cleared the connection itself doesn't change. The Update
signal is to be emmited only on explicit Update()/Update2() or
ClearSecrets() which is already the case.

Apart from Update being wrong, it has the ill effect of causing libnm to
drop secrets from the cached connection.

(cherry picked from commit 66ae0cc306)
This commit is contained in:
Lubomir Rintel 2018-02-16 18:28:51 +01:00
parent 9479a014bc
commit 19c22a13b2

View file

@ -1576,10 +1576,8 @@ nm_connection_update_secrets (NMConnection *connection,
}
}
if (updated) {
if (updated)
g_signal_emit (connection, signals[SECRETS_UPDATED], 0, setting_name);
g_signal_emit (connection, signals[CHANGED], 0);
}
return success;
}
@ -1657,20 +1655,17 @@ nm_connection_clear_secrets (NMConnection *connection)
{
GHashTableIter iter;
NMSetting *setting;
gboolean changed = FALSE;
g_return_if_fail (NM_IS_CONNECTION (connection));
g_hash_table_iter_init (&iter, NM_CONNECTION_GET_PRIVATE (connection)->settings);
while (g_hash_table_iter_next (&iter, NULL, (gpointer) &setting)) {
g_signal_handlers_block_by_func (setting, (GCallback) setting_changed_cb, connection);
changed |= _nm_setting_clear_secrets (setting);
_nm_setting_clear_secrets (setting);
g_signal_handlers_unblock_by_func (setting, (GCallback) setting_changed_cb, connection);
}
g_signal_emit (connection, signals[SECRETS_CLEARED], 0);
if (changed)
g_signal_emit (connection, signals[CHANGED], 0);
}
/**
@ -1689,20 +1684,17 @@ nm_connection_clear_secrets_with_flags (NMConnection *connection,
{
GHashTableIter iter;
NMSetting *setting;
gboolean changed = FALSE;
g_return_if_fail (NM_IS_CONNECTION (connection));
g_hash_table_iter_init (&iter, NM_CONNECTION_GET_PRIVATE (connection)->settings);
while (g_hash_table_iter_next (&iter, NULL, (gpointer) &setting)) {
g_signal_handlers_block_by_func (setting, (GCallback) setting_changed_cb, connection);
changed |= _nm_setting_clear_secrets_with_flags (setting, func, user_data);
_nm_setting_clear_secrets_with_flags (setting, func, user_data);
g_signal_handlers_unblock_by_func (setting, (GCallback) setting_changed_cb, connection);
}
g_signal_emit (connection, signals[SECRETS_CLEARED], 0);
if (changed)
g_signal_emit (connection, signals[CHANGED], 0);
}
/**