diff options
Diffstat (limited to 'src/connection-editor/nm-connection-list.c')
-rw-r--r-- | src/connection-editor/nm-connection-list.c | 24 |
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) { |