mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-05 12:18:13 +02:00
* Pass round and search on the authentication type consistently
(this version of the auth dialog only supports "CHAP") git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1920 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
parent
89b081181b
commit
6c7a68b050
1 changed files with 9 additions and 7 deletions
|
|
@ -34,7 +34,7 @@
|
|||
#define VPN_SERVICE "org.freedesktop.NetworkManager.ppp_starter"
|
||||
|
||||
static GSList *
|
||||
lookup_pass (const char *vpn_name, const char *vpn_service, gboolean *is_session)
|
||||
lookup_pass (const char *vpn_name, const char *vpn_service, char *auth_type, gboolean *is_session)
|
||||
{
|
||||
GSList *passwords;
|
||||
GList *keyring_result;
|
||||
|
|
@ -46,7 +46,7 @@ lookup_pass (const char *vpn_name, const char *vpn_service, gboolean *is_session
|
|||
vpn_name, /* server */
|
||||
NULL, /* object */
|
||||
vpn_service, /* protocol */
|
||||
NULL, /* authtype */
|
||||
auth_type, /* authtype */
|
||||
0, /* port */
|
||||
&keyring_result) != GNOME_KEYRING_RESULT_OK)
|
||||
return FALSE;
|
||||
|
|
@ -89,7 +89,7 @@ static void save_vpn_password (const char *vpn_name, const char *vpn_service, co
|
|||
username,
|
||||
NULL,
|
||||
vpn_name,
|
||||
"password",
|
||||
NULL,
|
||||
vpn_service,
|
||||
auth_type,
|
||||
0,
|
||||
|
|
@ -108,6 +108,7 @@ get_passwords (const char *vpn_name, const char *vpn_service, gboolean retry)
|
|||
GSList *result;
|
||||
char *prompt;
|
||||
GtkWidget *dialog;
|
||||
char *keyring_authtype;
|
||||
char *keyring_username;
|
||||
char *keyring_password;
|
||||
gboolean keyring_is_session;
|
||||
|
|
@ -123,13 +124,14 @@ get_passwords (const char *vpn_name, const char *vpn_service, gboolean retry)
|
|||
|
||||
/* Use the system user name, since the VPN might have a different user name */
|
||||
if (!retry) {
|
||||
if ((result = lookup_pass (vpn_name, vpn_service, &keyring_is_session)) != NULL) {
|
||||
if ((result = lookup_pass (vpn_name, vpn_service, "CHAP", &keyring_is_session)) != NULL) {
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
if ((keyring_result = lookup_pass (vpn_name, vpn_service, &keyring_is_session)) != NULL) {
|
||||
keyring_username = g_strdup ((char *) keyring_result->data);
|
||||
keyring_password = g_strdup ((char *) (g_slist_next (keyring_result))->data);
|
||||
if ((keyring_result = lookup_pass (vpn_name, vpn_service, "CHAP", &keyring_is_session)) != NULL) {
|
||||
keyring_authtype = g_strdup ((char *) keyring_result->data);
|
||||
keyring_username = g_strdup ((char *) (g_slist_next (keyring_result))->data);
|
||||
keyring_password = g_strdup ((char *) (g_slist_next (g_slist_next (keyring_result)))->data);
|
||||
}
|
||||
g_slist_foreach (keyring_result, (GFunc)g_free, NULL);
|
||||
g_slist_free (keyring_result);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue