diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2017-04-28 18:52:39 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2017-05-15 12:59:55 +0200 |
commit | f87912326cad069939953f50d365b04c15fd41d7 (patch) | |
tree | 1a097ef6fda946e800c5c87608567b08ade7ad50 | |
parent | 5c80571006d784bba4c55cafdb9da0667980011f (diff) | |
download | NetworkManager-f87912326cad069939953f50d365b04c15fd41d7.tar.gz |
settings-connection: all method to internally supply new secrets
It's sort of a very very lightweight version of get_secrets_done_cb()
that allows as to add secrets to the connection that didn't come from
the agent manager.
-rw-r--r-- | src/settings/nm-settings-connection.c | 25 | ||||
-rw-r--r-- | src/settings/nm-settings-connection.h | 6 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index 0cb2920c58..76b0ff5a85 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -974,6 +974,31 @@ get_cmp_flags (NMSettingsConnection *self, /* only needed for logging */ } } +gboolean +nm_settings_connection_new_secrets (NMSettingsConnection *self, + NMConnection *applied_connection, + const char *setting_name, + GVariant *secrets, + GError **error) +{ + if (!nm_settings_connection_has_unmodified_applied_connection (self, applied_connection, + NM_SETTING_COMPARE_FLAG_NONE)) { + g_set_error_literal (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_FAILED, + "The connection was modified since activation"); + return FALSE; + } + + if (!nm_connection_update_secrets (NM_CONNECTION (self), setting_name, secrets, error)) + return FALSE; + + update_system_secrets_cache (self); + update_agent_secrets_cache (self, NULL); + nm_settings_connection_commit_changes (self, NM_SETTINGS_CONNECTION_COMMIT_REASON_NONE, + new_secrets_commit_cb, NULL); + + return TRUE; +} + static void get_secrets_done_cb (NMAgentManager *manager, NMAgentManagerCallId call_id_a, diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h index b449e2bd14..c50b4515a3 100644 --- a/src/settings/nm-settings-connection.h +++ b/src/settings/nm-settings-connection.h @@ -163,6 +163,12 @@ typedef void (*NMSettingsConnectionSecretsFunc) (NMSettingsConnection *self, GError *error, gpointer user_data); +gboolean nm_settings_connection_new_secrets (NMSettingsConnection *self, + NMConnection *applied_connection, + const char *setting_name, + GVariant *secrets, + GError **error); + NMSettingsConnectionCallId nm_settings_connection_get_secrets (NMSettingsConnection *self, NMConnection *applied_connection, NMAuthSubject *subject, |