Jean-Philippe Barrette-LaPierre fixed the CURLOPT_PASSWDFUNCTION to make

NULL set back the internal default function
This commit is contained in:
Daniel Stenberg 2002-03-08 15:06:42 +00:00
parent b86e543a13
commit 017be8a882
1 changed files with 18 additions and 4 deletions

View File

@ -765,6 +765,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
* Password prompt callback
*/
data->set.fpasswd = va_arg(param, curl_passwd_callback);
/*
* if the callback provided is null, reset the default callback
*/
if(!data->set.fpasswd)
{
data->set.fpasswd = my_getpass;
}
break;
case CURLOPT_PASSWDDATA:
/*
@ -1456,11 +1463,14 @@ static CURLcode CreateConnection(struct SessionHandle *data,
/* check for password, if no ask for one */
if( !data->state.passwd[0] ) {
if(!data->set.fpasswd ||
if(!data->set.fpasswd ||
data->set.fpasswd(data->set.passwd_client,
"password:", data->state.passwd,
"password:", data->state.passwd,
sizeof(data->state.passwd)))
{
failf(data, "Bad password from password callback");
return CURLE_BAD_PASSWORD_ENTERED;
}
}
}
@ -1486,8 +1496,10 @@ static CURLcode CreateConnection(struct SessionHandle *data,
data->set.fpasswd( data->set.passwd_client,
"proxy password:",
data->state.proxypasswd,
sizeof(data->state.proxypasswd)))
sizeof(data->state.proxypasswd))) {
failf(data, "Bad password from password callback");
return CURLE_BAD_PASSWORD_ENTERED;
}
}
}
@ -1860,8 +1872,10 @@ static CURLcode CreateConnection(struct SessionHandle *data,
if(!data->set.fpasswd ||
data->set.fpasswd(data->set.passwd_client,
"password:", data->state.passwd,
sizeof(data->state.passwd)))
sizeof(data->state.passwd))) {
failf(data, "Bad password from password callback");
return CURLE_BAD_PASSWORD_ENTERED;
}
}
else {
/* we have a password found in the URL, decode it! */