From b259646ea10fc13d6cd97608824d0038f9720996 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Tue, 21 Feb 2017 22:21:17 -0500 Subject: 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 --- src/tool_operate.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/tool_operate.c b/src/tool_operate.c index bc36520d9..c30b32046 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -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); -- cgit v1.2.3