summaryrefslogtreecommitdiff
path: root/src/connection-editor/nm-connection-list.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/connection-editor/nm-connection-list.c')
-rw-r--r--src/connection-editor/nm-connection-list.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/connection-editor/nm-connection-list.c b/src/connection-editor/nm-connection-list.c
index 49583f65..d0271e36 100644
--- a/src/connection-editor/nm-connection-list.c
+++ b/src/connection-editor/nm-connection-list.c
@@ -1045,14 +1045,13 @@ nm_connection_list_create (NMConnectionList *list,
if (import_filename) {
if (ctype == G_TYPE_INVALID) {
- /* Atempt a VPN import */
- connection = connection_import_from_file (import_filename, NULL);
- if (connection)
- ctype = NM_TYPE_SETTING_VPN;
- else
- g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC, _("Unrecognized connection type"));
- } else if (ctype == NM_TYPE_SETTING_VPN) {
- connection = connection_import_from_file (import_filename, &error);
+ connection = connection_import_from_file (import_filename, ctype, NULL);
+ if (!connection) {
+ g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC,
+ _ ("Unrecognized connection type"));
+ }
+ } else if (NM_IN_SET (ctype, NM_TYPE_SETTING_VPN, NM_TYPE_SETTING_WIREGUARD)) {
+ connection = connection_import_from_file (import_filename, ctype, &error);
} else {
g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC,
_("Don’t know how to import “%s” connections"), g_type_name (ctype));
@@ -1063,6 +1062,15 @@ nm_connection_list_create (NMConnectionList *list,
callback (list, user_data);
return;
}
+
+ if (nm_streq0 (nm_connection_get_connection_type (connection),
+ NM_SETTING_WIREGUARD_SETTING_NAME))
+ ctype = NM_TYPE_SETTING_WIREGUARD;
+ else {
+ nm_assert (NM_IN_STRSET (nm_connection_get_connection_type (connection), NULL,
+ NM_SETTING_VPN_SETTING_NAME));
+ ctype = NM_TYPE_SETTING_VPN;
+ }
}
if (ctype == G_TYPE_INVALID) {