mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-10 10:30:19 +01:00
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:
parent
9479a014bc
commit
19c22a13b2
1 changed files with 3 additions and 11 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue