From 017be8a882113c5414ac283266491ca8035c0092 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 8 Mar 2002 15:06:42 +0000 Subject: Jean-Philippe Barrette-LaPierre fixed the CURLOPT_PASSWDFUNCTION to make NULL set back the internal default function --- lib/url.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/url.c b/lib/url.c index e88a65e85..e42ce9aed 100644 --- a/lib/url.c +++ b/lib/url.c @@ -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! */ -- cgit v1.2.3