mirror of
https://github.com/curl/curl.git
synced 2026-08-05 20:56:13 +03:00
setopt: fix SSLVERSION to allow CURL_SSLVERSION_MAX_ values
Broken since f121575 (precedes 7.56.1).
Bug: https://github.com/curl/curl/issues/2225
Reported-by: cmfrolick@users.noreply.github.com
Closes https://github.com/curl/curl/pull/2227
This commit is contained in:
parent
3b548ffde9
commit
6fa10c8fa2
3 changed files with 39 additions and 29 deletions
42
lib/setopt.c
42
lib/setopt.c
|
|
@ -360,32 +360,34 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option,
|
|||
*/
|
||||
data->set.timevalue = (time_t)va_arg(param, long);
|
||||
break;
|
||||
|
||||
case CURLOPT_SSLVERSION:
|
||||
case CURLOPT_PROXY_SSLVERSION:
|
||||
/*
|
||||
* Set explicit SSL version to try to connect with, as some SSL
|
||||
* implementations are lame.
|
||||
*/
|
||||
#ifdef USE_SSL
|
||||
arg = va_arg(param, long);
|
||||
if((arg < CURL_SSLVERSION_DEFAULT) || (arg > CURL_SSLVERSION_TLSv1_3))
|
||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||
data->set.ssl.primary.version = C_SSLVERSION_VALUE(arg);
|
||||
data->set.ssl.primary.version_max = C_SSLVERSION_MAX_VALUE(arg);
|
||||
#else
|
||||
result = CURLE_UNKNOWN_OPTION;
|
||||
#endif
|
||||
break;
|
||||
case CURLOPT_PROXY_SSLVERSION:
|
||||
/*
|
||||
* Set explicit SSL version to try to connect with for proxy, as some SSL
|
||||
* implementations are lame.
|
||||
*/
|
||||
#ifdef USE_SSL
|
||||
arg = va_arg(param, long);
|
||||
if((arg < CURL_SSLVERSION_DEFAULT) || (arg > CURL_SSLVERSION_TLSv1_3))
|
||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||
data->set.proxy_ssl.primary.version = C_SSLVERSION_VALUE(arg);
|
||||
data->set.proxy_ssl.primary.version_max = C_SSLVERSION_MAX_VALUE(arg);
|
||||
{
|
||||
long version, version_max;
|
||||
struct ssl_primary_config *primary = (option == CURLOPT_SSLVERSION ?
|
||||
&data->set.ssl.primary :
|
||||
&data->set.proxy_ssl.primary);
|
||||
|
||||
arg = va_arg(param, long);
|
||||
|
||||
version = C_SSLVERSION_VALUE(arg);
|
||||
version_max = C_SSLVERSION_MAX_VALUE(arg);
|
||||
|
||||
if(version < CURL_SSLVERSION_DEFAULT ||
|
||||
version >= CURL_SSLVERSION_LAST ||
|
||||
version_max < CURL_SSLVERSION_MAX_NONE ||
|
||||
version_max >= CURL_SSLVERSION_MAX_LAST)
|
||||
return CURLE_BAD_FUNCTION_ARGUMENT;
|
||||
|
||||
primary->version = version;
|
||||
primary->version_max = version_max;
|
||||
}
|
||||
#else
|
||||
result = CURLE_UNKNOWN_OPTION;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue