diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2017-02-21 09:57:54 +0100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2017-02-27 11:16:45 +0100 |
commit | b47340fd3f70c2636bb5dae56a5310b59b88cf7a (patch) | |
tree | ee236816b023ab76f35a504ab90c437fec14e0f6 | |
parent | 54086127ef6dcabcf387101305668103bd5c3b1d (diff) | |
download | NetworkManager-b47340fd3f70c2636bb5dae56a5310b59b88cf7a.tar.gz |
settings-connection: fix Save()
Avoid using new_settings when they are none. Also, don't shortcut when
the connection hasn't been changed -- let the settings plugin decide if
it needs to rewrite the connection.
-rw-r--r-- | src/settings/nm-settings-connection.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index e443920efe..827a67b2cc 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -1711,6 +1711,17 @@ update_auth_cb (NMSettingsConnection *self, return; } + if (!info->new_settings) { + /* We're just calling Save(). Just commit the existing connection. */ + if (info->save_to_disk) { + nm_settings_connection_commit_changes (self, + NM_SETTINGS_CONNECTION_COMMIT_REASON_USER_ACTION, + con_update_cb, + info); + } + return; + } + if (!any_secrets_present (info->new_settings)) { /* If the new connection has no secrets, we do not want to remove all * secrets, rather we keep all the existing ones. Do that by merging @@ -1860,11 +1871,7 @@ static void impl_settings_connection_save (NMSettingsConnection *self, GDBusMethodInvocation *context) { - /* Do nothing if the connection is already synced with disk */ - if (nm_settings_connection_get_unsaved (self)) - settings_connection_update_helper (self, context, NULL, TRUE); - else - g_dbus_method_invocation_return_value (context, NULL); + settings_connection_update_helper (self, context, NULL, TRUE); } static void |