mirror of
https://github.com/curl/curl.git
synced 2025-09-12 23:22:42 +03:00
Jean-Philippe Barrette-LaPierre fixed the CURLOPT_PASSWDFUNCTION to make
NULL set back the internal default function
This commit is contained in:
parent
b86e543a13
commit
017be8a882
18
lib/url.c
18
lib/url.c
|
@ -765,6 +765,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
|
||||||
* Password prompt callback
|
* Password prompt callback
|
||||||
*/
|
*/
|
||||||
data->set.fpasswd = va_arg(param, curl_passwd_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;
|
break;
|
||||||
case CURLOPT_PASSWDDATA:
|
case CURLOPT_PASSWDDATA:
|
||||||
/*
|
/*
|
||||||
|
@ -1460,9 +1467,12 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
||||||
data->set.fpasswd(data->set.passwd_client,
|
data->set.fpasswd(data->set.passwd_client,
|
||||||
"password:", data->state.passwd,
|
"password:", data->state.passwd,
|
||||||
sizeof(data->state.passwd)))
|
sizeof(data->state.passwd)))
|
||||||
|
{
|
||||||
|
failf(data, "Bad password from password callback");
|
||||||
return CURLE_BAD_PASSWORD_ENTERED;
|
return CURLE_BAD_PASSWORD_ENTERED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************
|
/*************************************************************
|
||||||
* Take care of proxy authentication stuff
|
* Take care of proxy authentication stuff
|
||||||
|
@ -1486,9 +1496,11 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
||||||
data->set.fpasswd( data->set.passwd_client,
|
data->set.fpasswd( data->set.passwd_client,
|
||||||
"proxy password:",
|
"proxy password:",
|
||||||
data->state.proxypasswd,
|
data->state.proxypasswd,
|
||||||
sizeof(data->state.proxypasswd)))
|
sizeof(data->state.proxypasswd))) {
|
||||||
|
failf(data, "Bad password from password callback");
|
||||||
return CURLE_BAD_PASSWORD_ENTERED;
|
return CURLE_BAD_PASSWORD_ENTERED;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1860,9 +1872,11 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
||||||
if(!data->set.fpasswd ||
|
if(!data->set.fpasswd ||
|
||||||
data->set.fpasswd(data->set.passwd_client,
|
data->set.fpasswd(data->set.passwd_client,
|
||||||
"password:", data->state.passwd,
|
"password:", data->state.passwd,
|
||||||
sizeof(data->state.passwd)))
|
sizeof(data->state.passwd))) {
|
||||||
|
failf(data, "Bad password from password callback");
|
||||||
return CURLE_BAD_PASSWORD_ENTERED;
|
return CURLE_BAD_PASSWORD_ENTERED;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
/* we have a password found in the URL, decode it! */
|
/* we have a password found in the URL, decode it! */
|
||||||
char *newpasswd=curl_unescape(data->state.passwd, 0);
|
char *newpasswd=curl_unescape(data->state.passwd, 0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user