nm: Handle PSK option in NM backend

This commit is contained in:
Tobias Brunner
2013-11-27 18:36:58 +01:00
parent 594878e552
commit 5ae822cfcd
+12 -4
View File
@@ -412,9 +412,10 @@ static gboolean connect_(NMVPNPlugin *plugin, NMConnection *connection,
loose_gateway_id = TRUE; loose_gateway_id = TRUE;
} }
if (auth_class == AUTH_CLASS_EAP) if (auth_class == AUTH_CLASS_EAP ||
auth_class == AUTH_CLASS_PSK)
{ {
/* username/password authentication ... */ /* username/password or PSK authentication ... */
str = nm_setting_vpn_get_data_item(vpn, "user"); str = nm_setting_vpn_get_data_item(vpn, "user");
if (str) if (str)
{ {
@@ -548,7 +549,14 @@ static gboolean connect_(NMVPNPlugin *plugin, NMConnection *connection,
auth->add(auth, AUTH_RULE_IDENTITY, user); auth->add(auth, AUTH_RULE_IDENTITY, user);
peer_cfg->add_auth_cfg(peer_cfg, auth, TRUE); peer_cfg->add_auth_cfg(peer_cfg, auth, TRUE);
auth = auth_cfg_create(); auth = auth_cfg_create();
auth->add(auth, AUTH_RULE_AUTH_CLASS, AUTH_CLASS_PUBKEY); if (auth_class == AUTH_CLASS_PSK)
{
auth->add(auth, AUTH_RULE_AUTH_CLASS, AUTH_CLASS_PSK);
}
else
{
auth->add(auth, AUTH_RULE_AUTH_CLASS, AUTH_CLASS_PUBKEY);
}
auth->add(auth, AUTH_RULE_IDENTITY, gateway); auth->add(auth, AUTH_RULE_IDENTITY, gateway);
auth->add(auth, AUTH_RULE_IDENTITY_LOOSE, loose_gateway_id); auth->add(auth, AUTH_RULE_IDENTITY_LOOSE, loose_gateway_id);
peer_cfg->add_auth_cfg(peer_cfg, auth, FALSE); peer_cfg->add_auth_cfg(peer_cfg, auth, FALSE);
@@ -623,7 +631,7 @@ static gboolean need_secrets(NMVPNPlugin *plugin, NMConnection *connection,
method = nm_setting_vpn_get_data_item(settings, "method"); method = nm_setting_vpn_get_data_item(settings, "method");
if (method) if (method)
{ {
if (streq(method, "eap")) if (streq(method, "eap") || streq(method, "psk"))
{ {
if (nm_setting_vpn_get_secret(settings, "password")) if (nm_setting_vpn_get_secret(settings, "password"))
{ {