curl: return error when asked to use an unsupported HTTP version

When one of the following options are used but the libcurl in use does
not support it:

--http2
--http2-prior-knowledge
--proxy-http2

Closes #11440
This commit is contained in:
Daniel Stenberg 2023-07-15 14:00:09 +02:00
parent a70d97c46c
commit 8d7cda1f92
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
3 changed files with 9 additions and 1 deletions

View file

@ -1438,10 +1438,14 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
break;
case '2':
/* HTTP version 2.0 */
if(!feature_http2)
return PARAM_LIBCURL_DOESNT_SUPPORT;
sethttpver(global, config, CURL_HTTP_VERSION_2_0);
break;
case '3': /* --http2-prior-knowledge */
/* HTTP version 2.0 over clean TCP */
if(!feature_http2)
return PARAM_LIBCURL_DOESNT_SUPPORT;
sethttpver(global, config, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE);
break;
case '4': /* --http3 */
@ -1462,6 +1466,8 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
break;
case 'a':
/* --proxy-http2 */
if(!feature_httpsproxy || !feature_http2)
return PARAM_LIBCURL_DOESNT_SUPPORT;
config->proxyver = CURLPROXY_HTTPS2;
break;
}