|
@@ -920,9 +920,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
|
|
|
case 'j': /* --compressed */
|
|
|
- if(toggle &&
|
|
|
- !(curlinfo->features & (CURL_VERSION_LIBZ |
|
|
|
- CURL_VERSION_BROTLI | CURL_VERSION_ZSTD)))
|
|
|
+ if(toggle && !(feature_libz || feature_brotli || feature_zstd))
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
config->encoding = toggle;
|
|
|
break;
|
|
@@ -939,36 +937,30 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
|
|
|
case 'l': /* --negotiate */
|
|
|
- if(toggle) {
|
|
|
- if(curlinfo->features & CURL_VERSION_SPNEGO)
|
|
|
- config->authtype |= CURLAUTH_NEGOTIATE;
|
|
|
- else
|
|
|
- return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
- }
|
|
|
- else
|
|
|
+ if(!toggle)
|
|
|
config->authtype &= ~CURLAUTH_NEGOTIATE;
|
|
|
+ else if(feature_spnego)
|
|
|
+ config->authtype |= CURLAUTH_NEGOTIATE;
|
|
|
+ else
|
|
|
+ return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
break;
|
|
|
|
|
|
case 'm': /* --ntlm */
|
|
|
- if(toggle) {
|
|
|
- if(curlinfo->features & CURL_VERSION_NTLM)
|
|
|
- config->authtype |= CURLAUTH_NTLM;
|
|
|
- else
|
|
|
- return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
- }
|
|
|
- else
|
|
|
+ if(!toggle)
|
|
|
config->authtype &= ~CURLAUTH_NTLM;
|
|
|
+ else if(feature_ntlm)
|
|
|
+ config->authtype |= CURLAUTH_NTLM;
|
|
|
+ else
|
|
|
+ return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
break;
|
|
|
|
|
|
case 'M': /* --ntlm-wb */
|
|
|
- if(toggle) {
|
|
|
- if(curlinfo->features & CURL_VERSION_NTLM_WB)
|
|
|
- config->authtype |= CURLAUTH_NTLM_WB;
|
|
|
- else
|
|
|
- return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
- }
|
|
|
- else
|
|
|
+ if(!toggle)
|
|
|
config->authtype &= ~CURLAUTH_NTLM_WB;
|
|
|
+ else if(feature_ntlm_wb)
|
|
|
+ config->authtype |= CURLAUTH_NTLM_WB;
|
|
|
+ else
|
|
|
+ return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
break;
|
|
|
|
|
|
case 'n': /* --basic for completeness */
|
|
@@ -1014,10 +1006,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
|
|
|
case 't': /* --proxy-ntlm */
|
|
|
- if(curlinfo->features & CURL_VERSION_NTLM)
|
|
|
- config->proxyntlm = toggle;
|
|
|
- else
|
|
|
+ if(!feature_ntlm)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ config->proxyntlm = toggle;
|
|
|
break;
|
|
|
|
|
|
case 'u': /* --crlf */
|
|
@@ -1051,10 +1042,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
case 'x': /* --krb */
|
|
|
/* kerberos level string */
|
|
|
- if(curlinfo->features & CURL_VERSION_SPNEGO)
|
|
|
- GetStr(&config->krblevel, nextarg);
|
|
|
- else
|
|
|
+ if(!feature_spnego)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ GetStr(&config->krblevel, nextarg);
|
|
|
break;
|
|
|
case 'X': /* --haproxy-protocol */
|
|
|
config->haproxy_protocol = toggle;
|
|
@@ -1114,7 +1104,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
case '$': /* more options without a short option */
|
|
|
switch(subletter) {
|
|
|
case 'a': /* --ssl */
|
|
|
- if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
|
|
|
+ if(toggle && !feature_ssl)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
config->ftp_ssl = toggle;
|
|
|
if(config->ftp_ssl)
|
|
@@ -1174,10 +1164,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
|
|
|
case 'k': /* --proxy-negotiate */
|
|
|
- if(curlinfo->features & CURL_VERSION_SPNEGO)
|
|
|
- config->proxynegotiate = toggle;
|
|
|
- else
|
|
|
+ if(!feature_spnego)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ config->proxynegotiate = toggle;
|
|
|
break;
|
|
|
|
|
|
case 'l': /* --form-escape */
|
|
@@ -1238,7 +1227,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
GetStr(&config->ftp_alternative_to_user, nextarg);
|
|
|
break;
|
|
|
case 'v': /* --ssl-reqd */
|
|
|
- if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
|
|
|
+ if(toggle && !feature_ssl)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
config->ftp_ssl_reqd = toggle;
|
|
|
break;
|
|
@@ -1246,7 +1235,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
config->disable_sessionid = (!toggle)?TRUE:FALSE;
|
|
|
break;
|
|
|
case 'x': /* --ftp-ssl-control */
|
|
|
- if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
|
|
|
+ if(toggle && !feature_ssl)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
config->ftp_ssl_control = toggle;
|
|
|
break;
|
|
@@ -1443,10 +1432,9 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
case '4': /* --http3 */
|
|
|
/* HTTP version 3 go over QUIC - at once */
|
|
|
- if(curlinfo->features & CURL_VERSION_HTTP3)
|
|
|
- config->httpversion = CURL_HTTP_VERSION_3;
|
|
|
- else
|
|
|
+ if(!feature_http3)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ config->httpversion = CURL_HTTP_VERSION_3;
|
|
|
break;
|
|
|
case '9':
|
|
|
/* Allow HTTP/0.9 responses! */
|
|
@@ -1511,16 +1499,14 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
case 'b':
|
|
|
switch(subletter) {
|
|
|
case 'a': /* --alt-svc */
|
|
|
- if(curlinfo->features & CURL_VERSION_ALTSVC)
|
|
|
- GetStr(&config->altsvc, nextarg);
|
|
|
- else
|
|
|
+ if(!feature_altsvc)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ GetStr(&config->altsvc, nextarg);
|
|
|
break;
|
|
|
case 'b': /* --hsts */
|
|
|
- if(curlinfo->features & CURL_VERSION_HSTS)
|
|
|
- GetStr(&config->hsts, nextarg);
|
|
|
- else
|
|
|
+ if(!feature_hsts)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ GetStr(&config->hsts, nextarg);
|
|
|
break;
|
|
|
default: /* --cookie string coming up: */
|
|
|
if(nextarg[0] == '@') {
|
|
@@ -1762,7 +1748,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
GetStr(&config->crlfile, nextarg);
|
|
|
break;
|
|
|
case 'k': /* TLS username */
|
|
|
- if(!(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)) {
|
|
|
+ if(!feature_tls_srp) {
|
|
|
cleanarg(clearthis);
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
}
|
|
@@ -1770,7 +1756,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
cleanarg(clearthis);
|
|
|
break;
|
|
|
case 'l': /* TLS password */
|
|
|
- if(!(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)) {
|
|
|
+ if(!feature_tls_srp) {
|
|
|
cleanarg(clearthis);
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
}
|
|
@@ -1778,26 +1764,24 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
cleanarg(clearthis);
|
|
|
break;
|
|
|
case 'm': /* TLS authentication type */
|
|
|
- if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) {
|
|
|
- GetStr(&config->tls_authtype, nextarg);
|
|
|
- if(!curl_strequal(config->tls_authtype, "SRP"))
|
|
|
- return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */
|
|
|
- }
|
|
|
- else
|
|
|
+ if(!feature_tls_srp)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ GetStr(&config->tls_authtype, nextarg);
|
|
|
+ if(!curl_strequal(config->tls_authtype, "SRP"))
|
|
|
+ return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */
|
|
|
break;
|
|
|
case 'n': /* no empty SSL fragments, --ssl-allow-beast */
|
|
|
- if(curlinfo->features & CURL_VERSION_SSL)
|
|
|
+ if(feature_ssl)
|
|
|
config->ssl_allow_beast = toggle;
|
|
|
break;
|
|
|
|
|
|
case 'o': /* --ssl-auto-client-cert */
|
|
|
- if(curlinfo->features & CURL_VERSION_SSL)
|
|
|
+ if(feature_ssl)
|
|
|
config->ssl_auto_client_cert = toggle;
|
|
|
break;
|
|
|
|
|
|
case 'O': /* --proxy-ssl-auto-client-cert */
|
|
|
- if(curlinfo->features & CURL_VERSION_SSL)
|
|
|
+ if(feature_ssl)
|
|
|
config->proxy_ssl_auto_client_cert = toggle;
|
|
|
break;
|
|
|
|
|
@@ -1822,12 +1806,12 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
|
|
|
case 's': /* --ssl-no-revoke */
|
|
|
- if(curlinfo->features & CURL_VERSION_SSL)
|
|
|
+ if(feature_ssl)
|
|
|
config->ssl_no_revoke = TRUE;
|
|
|
break;
|
|
|
|
|
|
case 'S': /* --ssl-revoke-best-effort */
|
|
|
- if(curlinfo->features & CURL_VERSION_SSL)
|
|
|
+ if(feature_ssl)
|
|
|
config->ssl_revoke_best_effort = TRUE;
|
|
|
break;
|
|
|
|
|
@@ -1837,28 +1821,24 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
|
|
|
case 'u': /* TLS username for proxy */
|
|
|
cleanarg(clearthis);
|
|
|
- if(!(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)) {
|
|
|
+ if(!feature_tls_srp)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
- }
|
|
|
GetStr(&config->proxy_tls_username, nextarg);
|
|
|
break;
|
|
|
|
|
|
case 'v': /* TLS password for proxy */
|
|
|
cleanarg(clearthis);
|
|
|
- if(!(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)) {
|
|
|
+ if(!feature_tls_srp)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
- }
|
|
|
GetStr(&config->proxy_tls_password, nextarg);
|
|
|
break;
|
|
|
|
|
|
case 'w': /* TLS authentication type for proxy */
|
|
|
- if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) {
|
|
|
- GetStr(&config->proxy_tls_authtype, nextarg);
|
|
|
- if(!curl_strequal(config->proxy_tls_authtype, "SRP"))
|
|
|
- return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */
|
|
|
- }
|
|
|
- else
|
|
|
+ if(!feature_tls_srp)
|
|
|
return PARAM_LIBCURL_DOESNT_SUPPORT;
|
|
|
+ GetStr(&config->proxy_tls_authtype, nextarg);
|
|
|
+ if(!curl_strequal(config->proxy_tls_authtype, "SRP"))
|
|
|
+ return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */
|
|
|
break;
|
|
|
|
|
|
case 'x': /* certificate file for proxy */
|
|
@@ -1893,7 +1873,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|
|
break;
|
|
|
|
|
|
case '4': /* no empty SSL fragments for proxy */
|
|
|
- if(curlinfo->features & CURL_VERSION_SSL)
|
|
|
+ if(feature_ssl)
|
|
|
config->proxy_ssl_allow_beast = toggle;
|
|
|
break;
|
|
|
|