url: Improve CURLOPT_PROXY_CAPATH error handling

- Change CURLOPT_PROXY_CAPATH to return CURLE_NOT_BUILT_IN if the option
  is not supported, which is the same as what we already do for
  CURLOPT_CAPATH.

- Change the curl tool to handle CURLOPT_PROXY_CAPATH error
  CURLE_NOT_BUILT_IN as a warning instead of as an error, which is the
  same as what we already do for CURLOPT_CAPATH.

- Fix CAPATH docs to show that CURLE_NOT_BUILT_IN is returned when the
  respective CAPATH option is not supported by the SSL library.

Ref: https://github.com/curl/curl/pull/1257
This commit is contained in:
Jay Satiro 2017-02-21 22:21:17 -05:00
parent 0e8d3e838e
commit b259646ea1
4 changed files with 38 additions and 10 deletions

View file

@ -1014,6 +1014,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
my_setopt_str(curl, CURLOPT_CAINFO, config->cacert);
if(config->proxy_cacert)
my_setopt_str(curl, CURLOPT_PROXY_CAINFO, config->proxy_cacert);
if(config->capath) {
result = res_setopt_str(curl, CURLOPT_CAPATH, config->capath);
if(result == CURLE_NOT_BUILT_IN) {
@ -1024,10 +1025,22 @@ static CURLcode operate_do(struct GlobalConfig *global,
else if(result)
goto show_error;
}
if(config->proxy_capath)
my_setopt_str(curl, CURLOPT_PROXY_CAPATH, config->proxy_capath);
else if(config->capath) /* CURLOPT_PROXY_CAPATH default is capath */
my_setopt_str(curl, CURLOPT_PROXY_CAPATH, config->capath);
/* For the time being if --proxy-capath is not set then we use the
--capath value for it, if any. See #1257 */
if(config->proxy_capath || config->capath) {
result = res_setopt_str(curl, CURLOPT_PROXY_CAPATH,
(config->proxy_capath ?
config->proxy_capath :
config->capath));
if(result == CURLE_NOT_BUILT_IN) {
if(config->proxy_capath) {
warnf(config->global,
"ignoring --proxy-capath, not supported by libcurl\n");
}
}
else if(result)
goto show_error;
}
if(config->crlfile)
my_setopt_str(curl, CURLOPT_CRLFILE, config->crlfile);