* 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:
/*
/* 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;
+ }
}
}
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;
+ }
}
}
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! */