diff options
-rw-r--r-- | src/nm-connection-provider.c | 12 | ||||
-rw-r--r-- | src/nm-connection-provider.h | 20 | ||||
-rw-r--r-- | src/settings/nm-settings.c | 11 |
3 files changed, 43 insertions, 0 deletions
diff --git a/src/nm-connection-provider.c b/src/nm-connection-provider.c index dca4bfb668..467d99d2b1 100644 --- a/src/nm-connection-provider.c +++ b/src/nm-connection-provider.c @@ -49,6 +49,18 @@ nm_connection_provider_has_connections_loaded (NMConnectionProvider *self) return NM_CONNECTION_PROVIDER_GET_INTERFACE (self)->has_connections_loaded (self); } +NMConnection * +nm_connection_provider_add_connection (NMConnectionProvider *self, + NMConnection *connection, + gboolean save_to_disk, + GError **error) +{ + g_return_val_if_fail (NM_IS_CONNECTION_PROVIDER (self), NULL); + + g_assert (NM_CONNECTION_PROVIDER_GET_INTERFACE (self)->add_connection); + return NM_CONNECTION_PROVIDER_GET_INTERFACE (self)->add_connection (self, connection, save_to_disk, error); +} + /*****************************************************************************/ static void diff --git a/src/nm-connection-provider.h b/src/nm-connection-provider.h index 75a572ed53..2afbc6d65c 100644 --- a/src/nm-connection-provider.h +++ b/src/nm-connection-provider.h @@ -60,6 +60,11 @@ struct _NMConnectionProvider { gboolean (*has_connections_loaded) (NMConnectionProvider *self); + NMConnection * (*add_connection) (NMConnectionProvider *self, + NMConnection *connection, + gboolean save_to_disk, + GError **error); + /* Signals */ void (*connection_added) (NMConnectionProvider *self, NMConnection *connection); @@ -117,4 +122,19 @@ const GSList *nm_connection_provider_get_connections (NMConnectionProvider *self */ gboolean nm_connection_provider_has_connections_loaded (NMConnectionProvider *self); + +/** + * nm_connection_provider_add_connection: + * @self: the #NMConnectionProvider + * @connection: the connection to be added + * @save_to_disk: whether to store the connection on disk + * @error: returns any error if adding fails + * + * returns: a newly added #NMConnection. + */ +NMConnection *nm_connection_provider_add_connection (NMConnectionProvider *self, + NMConnection *connection, + gboolean save_to_disk, + GError **error); + #endif /* NM_CONNECTION_PROVIDER_H */ diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 2da97624d7..2d3e278351 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -930,6 +930,16 @@ nm_settings_add_connection (NMSettings *self, return NULL; } +static NMConnection * +_nm_connection_provider_add_connection (NMConnectionProvider *provider, + NMConnection *connection, + gboolean save_to_disk, + GError **error) +{ + g_assert (NM_IS_CONNECTION_PROVIDER (provider) && NM_IS_SETTINGS (provider)); + return NM_CONNECTION (nm_settings_add_connection (NM_SETTINGS (provider), connection, save_to_disk, error)); +} + static gboolean secrets_filter_cb (NMSetting *setting, const char *secret, @@ -1676,6 +1686,7 @@ connection_provider_init (NMConnectionProvider *cp_class) cp_class->get_best_connections = get_best_connections; cp_class->get_connections = get_connections; cp_class->has_connections_loaded = has_connections_loaded; + cp_class->add_connection = _nm_connection_provider_add_connection; } static void |