clients: move vpn_get_secret_names() to nm-vpn-helpers
It should eventually move into libnm and ideally the data be obtained from VPN plugins. (No functional change, only moving the function).
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
#include <nm-vpn-service-plugin.h>
|
||||
|
||||
#include "nm-default.h"
|
||||
#include "nm-vpn-helpers.h"
|
||||
#include "nm-secret-agent-simple.h"
|
||||
|
||||
G_DEFINE_TYPE (NMSecretAgentSimple, nm_secret_agent_simple, NM_TYPE_SECRET_AGENT_OLD)
|
||||
@@ -336,53 +337,6 @@ add_pppoe_secrets (NMSecretAgentSimpleRequest *request,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
struct {
|
||||
const char *name;
|
||||
const char *ui_name;
|
||||
} typedef VpnPasswordName;
|
||||
|
||||
static const VpnPasswordName *
|
||||
vpn_get_secret_names (const char *vpn_type)
|
||||
{
|
||||
const char *type;
|
||||
static VpnPasswordName generic_vpn_secrets[] = { {"password", N_("Password")}, {NULL, NULL} };
|
||||
static VpnPasswordName vpnc_secrets[] = { {"Xauth password", N_("Password")},
|
||||
{"IPSec secret", N_("Group password")},
|
||||
{NULL, NULL} };
|
||||
static VpnPasswordName swan_secrets[] = { {"xauthpassword", N_("Password")},
|
||||
{"pskvalue", N_("Group password")},
|
||||
{NULL, NULL} };
|
||||
static VpnPasswordName openconnect_secrets[] = { {"gateway", N_("Gateway")},
|
||||
{"cookie", N_("Cookie")},
|
||||
{"gwcert", N_("Gateway certificate hash")},
|
||||
{NULL, NULL} };
|
||||
|
||||
if (!vpn_type)
|
||||
return NULL;
|
||||
|
||||
if (g_str_has_prefix (vpn_type, NM_DBUS_INTERFACE))
|
||||
type = vpn_type + strlen (NM_DBUS_INTERFACE) + 1;
|
||||
else
|
||||
type = vpn_type;
|
||||
|
||||
if ( !g_strcmp0 (type, "openvpn")
|
||||
|| !g_strcmp0 (type, "pptp")
|
||||
|| !g_strcmp0 (type, "iodine")
|
||||
|| !g_strcmp0 (type, "ssh")
|
||||
|| !g_strcmp0 (type, "l2tp")
|
||||
|| !g_strcmp0 (type, "fortisslvpn"))
|
||||
return generic_vpn_secrets;
|
||||
else if (!g_strcmp0 (type, "vpnc"))
|
||||
return vpnc_secrets;
|
||||
else if ( !g_strcmp0 (type, "openswan")
|
||||
|| !g_strcmp0 (type, "libreswan")
|
||||
|| !g_strcmp0 (type, "strongswan"))
|
||||
return swan_secrets;
|
||||
else if (!g_strcmp0 (type, "openconnect"))
|
||||
return openconnect_secrets;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static NMSettingSecretFlags
|
||||
get_vpn_secret_flags (NMSettingVpn *s_vpn, const char *secret_name)
|
||||
{
|
||||
@@ -448,7 +402,7 @@ add_vpn_secrets (NMSecretAgentSimpleRequest *request,
|
||||
*msg = g_strdup (tmp);
|
||||
|
||||
/* Now add what client thinks might be required, because hints may be empty or incomplete */
|
||||
p = secret_names = vpn_get_secret_names (nm_setting_vpn_get_service_type (s_vpn));
|
||||
p = secret_names = nm_vpn_get_secret_names (nm_setting_vpn_get_service_type (s_vpn));
|
||||
while (p && p->name) {
|
||||
add_vpn_secret_helper (secrets, s_vpn, p->name, _(p->ui_name));
|
||||
p++;
|
||||
|
@@ -94,3 +94,46 @@ nm_vpn_supports_ipv6 (NMConnection *connection)
|
||||
capabilities = nm_vpn_editor_plugin_get_capabilities (plugin);
|
||||
return NM_FLAGS_HAS (capabilities, NM_VPN_EDITOR_PLUGIN_CAPABILITY_IPV6);
|
||||
}
|
||||
|
||||
const VpnPasswordName *
|
||||
nm_vpn_get_secret_names (const char *vpn_type)
|
||||
{
|
||||
const char *type;
|
||||
static VpnPasswordName generic_vpn_secrets[] = { {"password", N_("Password")}, {NULL, NULL} };
|
||||
static VpnPasswordName vpnc_secrets[] = { {"Xauth password", N_("Password")},
|
||||
{"IPSec secret", N_("Group password")},
|
||||
{NULL, NULL} };
|
||||
static VpnPasswordName swan_secrets[] = { {"xauthpassword", N_("Password")},
|
||||
{"pskvalue", N_("Group password")},
|
||||
{NULL, NULL} };
|
||||
static VpnPasswordName openconnect_secrets[] = { {"gateway", N_("Gateway")},
|
||||
{"cookie", N_("Cookie")},
|
||||
{"gwcert", N_("Gateway certificate hash")},
|
||||
{NULL, NULL} };
|
||||
|
||||
if (!vpn_type)
|
||||
return NULL;
|
||||
|
||||
if (g_str_has_prefix (vpn_type, NM_DBUS_INTERFACE))
|
||||
type = vpn_type + strlen (NM_DBUS_INTERFACE) + 1;
|
||||
else
|
||||
type = vpn_type;
|
||||
|
||||
if ( !g_strcmp0 (type, "openvpn")
|
||||
|| !g_strcmp0 (type, "pptp")
|
||||
|| !g_strcmp0 (type, "iodine")
|
||||
|| !g_strcmp0 (type, "ssh")
|
||||
|| !g_strcmp0 (type, "l2tp")
|
||||
|| !g_strcmp0 (type, "fortisslvpn"))
|
||||
return generic_vpn_secrets;
|
||||
else if (!g_strcmp0 (type, "vpnc"))
|
||||
return vpnc_secrets;
|
||||
else if ( !g_strcmp0 (type, "openswan")
|
||||
|| !g_strcmp0 (type, "libreswan")
|
||||
|| !g_strcmp0 (type, "strongswan"))
|
||||
return swan_secrets;
|
||||
else if (!g_strcmp0 (type, "openconnect"))
|
||||
return openconnect_secrets;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@@ -23,10 +23,17 @@
|
||||
|
||||
#include "nm-default.h"
|
||||
|
||||
struct {
|
||||
const char *name;
|
||||
const char *ui_name;
|
||||
} typedef VpnPasswordName;
|
||||
|
||||
GSList *nm_vpn_get_plugins (void);
|
||||
|
||||
NMVpnEditorPlugin *nm_vpn_get_plugin_by_service (const char *service, GError **error);
|
||||
|
||||
gboolean nm_vpn_supports_ipv6 (NMConnection *connection);
|
||||
|
||||
const VpnPasswordName * nm_vpn_get_secret_names (const char *vpn_type);
|
||||
|
||||
#endif /* __NM_VPN_HELPERS_H__ */
|
||||
|
@@ -116,6 +116,8 @@ nmtui_SOURCES = \
|
||||
nmt-widget-list.h \
|
||||
$(srcdir)/../common/nm-secret-agent-simple.c \
|
||||
$(srcdir)/../common/nm-secret-agent-simple.h \
|
||||
$(srcdir)/../common/nm-vpn-helpers.c \
|
||||
$(srcdir)/../common/nm-vpn-helpers.h \
|
||||
$(NULL)
|
||||
|
||||
nmtui_LDADD = \
|
||||
|
Reference in New Issue
Block a user