summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2017-02-21 09:57:54 +0100
committerLubomir Rintel <lkundrak@v3.sk>2017-02-27 11:16:45 +0100
commitb47340fd3f70c2636bb5dae56a5310b59b88cf7a (patch)
treeee236816b023ab76f35a504ab90c437fec14e0f6
parent54086127ef6dcabcf387101305668103bd5c3b1d (diff)
downloadNetworkManager-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.c17
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