mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-04 16:50:17 +01:00
settings: add NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET flag
Along with NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_SYSTEM_SECRETS and NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_AGENT_SECRETS, which can be used in the NMSettingConnection's "updated" handlers to track secrets updates, add NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET so that the handlers can tell when something other than secrets has been updated in the connection. It can also potentially be used in _connection_changed_update in src/core/settings/nm-settings.c to stop emitting the NetworkManager.Settings.Connection.Updated() dbus signal if only secrets are being updated (on agent queries etc.) if it is deemed to be correct.
This commit is contained in:
parent
195c853a80
commit
ee583adecf
6 changed files with 31 additions and 21 deletions
|
|
@ -13633,7 +13633,7 @@ nm_device_set_ip_config(NMDevice * self,
|
|||
NM_SETTINGS_CONNECTION_PERSIST_MODE_IN_MEMORY,
|
||||
NM_SETTINGS_CONNECTION_INT_FLAGS_NONE,
|
||||
NM_SETTINGS_CONNECTION_INT_FLAGS_NONE,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_NONE,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET,
|
||||
"update-external",
|
||||
NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -229,14 +229,16 @@ restore_and_activate_connection(NMCheckpoint *self, DeviceCheckpoint *dev_checkp
|
|||
if (need_update) {
|
||||
_LOGD("rollback: updating connection %s", nm_settings_connection_get_uuid(connection));
|
||||
persist_mode = NM_SETTINGS_CONNECTION_PERSIST_MODE_KEEP;
|
||||
nm_settings_connection_update(connection,
|
||||
dev_checkpoint->settings_connection,
|
||||
persist_mode,
|
||||
sett_flags,
|
||||
sett_mask,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_NONE,
|
||||
"checkpoint-rollback",
|
||||
NULL);
|
||||
nm_settings_connection_update(
|
||||
connection,
|
||||
dev_checkpoint->settings_connection,
|
||||
persist_mode,
|
||||
sett_flags,
|
||||
sett_mask,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_SYSTEM_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET,
|
||||
"checkpoint-rollback",
|
||||
NULL);
|
||||
}
|
||||
} else {
|
||||
/* The connection was deleted, recreate it */
|
||||
|
|
|
|||
|
|
@ -2892,15 +2892,16 @@ recheck_assume_connection(NMManager *self, NMDevice *device)
|
|||
NM_SETTING_IP4_CONFIG_METHOD_AUTO,
|
||||
NULL));
|
||||
|
||||
nm_settings_connection_update(sett_conn,
|
||||
con2,
|
||||
NM_SETTINGS_CONNECTION_PERSIST_MODE_KEEP,
|
||||
NM_SETTINGS_CONNECTION_INT_FLAGS_NONE,
|
||||
NM_SETTINGS_CONNECTION_INT_FLAGS_VOLATILE
|
||||
| NM_SETTINGS_CONNECTION_INT_FLAGS_EXTERNAL,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_NONE,
|
||||
"assume-initrd",
|
||||
NULL);
|
||||
nm_settings_connection_update(
|
||||
sett_conn,
|
||||
con2,
|
||||
NM_SETTINGS_CONNECTION_PERSIST_MODE_KEEP,
|
||||
NM_SETTINGS_CONNECTION_INT_FLAGS_NONE,
|
||||
NM_SETTINGS_CONNECTION_INT_FLAGS_VOLATILE
|
||||
| NM_SETTINGS_CONNECTION_INT_FLAGS_EXTERNAL,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET,
|
||||
"assume-initrd",
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1536,6 +1536,7 @@ update_auth_cb(NMSettingsConnection * self,
|
|||
: NM_SETTINGS_CONNECTION_UPDATE_REASON_REAPPLY_PARTIAL)
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_SYSTEM_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_AGENT_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET
|
||||
| (NM_FLAGS_HAS(info->flags, NM_SETTINGS_UPDATE2_FLAG_BLOCK_AUTOCONNECT)
|
||||
? NM_SETTINGS_CONNECTION_UPDATE_REASON_BLOCK_AUTOCONNECT
|
||||
: NM_SETTINGS_CONNECTION_UPDATE_REASON_NONE),
|
||||
|
|
|
|||
|
|
@ -63,6 +63,9 @@ typedef enum {
|
|||
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_BLOCK_AUTOCONNECT = (1u << 8),
|
||||
|
||||
/* Is anything other than secrets changing */
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET = (1u << 9),
|
||||
|
||||
} NMSettingsConnectionUpdateReason;
|
||||
|
||||
typedef enum {
|
||||
|
|
|
|||
|
|
@ -1433,7 +1433,8 @@ _plugin_connections_reload(NMSettings *self)
|
|||
NM_SETTINGS_CONNECTION_INT_FLAGS_NONE,
|
||||
TRUE,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_SYSTEM_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_AGENT_SECRETS);
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_AGENT_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET);
|
||||
|
||||
for (iter = priv->plugins; iter; iter = iter->next)
|
||||
nm_settings_plugin_load_connections_done(iter->data);
|
||||
|
|
@ -1910,7 +1911,8 @@ again_delete_tombstone:
|
|||
_NM_SETTINGS_CONNECTION_INT_FLAGS_PERSISTENT_MASK,
|
||||
FALSE,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_SYSTEM_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_AGENT_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_CLEAR_AGENT_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET
|
||||
| (NM_FLAGS_HAS(add_reason, NM_SETTINGS_CONNECTION_ADD_REASON_BLOCK_AUTOCONNECT)
|
||||
? NM_SETTINGS_CONNECTION_UPDATE_REASON_BLOCK_AUTOCONNECT
|
||||
: NM_SETTINGS_CONNECTION_UPDATE_REASON_NONE));
|
||||
|
|
@ -2810,7 +2812,8 @@ impl_settings_load_connections(NMDBusObject * obj,
|
|||
NM_SETTINGS_CONNECTION_INT_FLAGS_NONE,
|
||||
TRUE,
|
||||
NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_SYSTEM_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_AGENT_SECRETS);
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_RESET_AGENT_SECRETS
|
||||
| NM_SETTINGS_CONNECTION_UPDATE_REASON_UPDATE_NON_SECRET);
|
||||
|
||||
for (iter = priv->plugins; iter; iter = iter->next)
|
||||
nm_settings_plugin_load_connections_done(iter->data);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue