summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2018-12-17 15:46:56 +0100
committerDaniel Stenberg <daniel@haxx.se>2018-12-21 10:49:30 +0100
commit006ff62d8c51f664c167c6337f009f9f65dd8ea7 (patch)
treed3c28ede3f9a04053c3bcd5d2b2eb7cb5a191735 /src
parentdb9776ea00226d1571e269464237b0d50191a0a3 (diff)
downloadgnurl-006ff62d8c51f664c167c6337f009f9f65dd8ea7.tar.gz
gnurl-006ff62d8c51f664c167c6337f009f9f65dd8ea7.tar.bz2
gnurl-006ff62d8c51f664c167c6337f009f9f65dd8ea7.zip
http: added options for allowing HTTP/0.9 responses
Added CURLOPT_HTTP09_ALLOWED and --http0.9 for this purpose. For now, both the tool and library allow HTTP/0.9 by default. docs/DEPRECATE.md lays out the plan for when to reverse that default: 6 months after the 7.64.0 release. The options are added already now so that applications/scripts can start using them already now. Fixes #2873 Closes #3383
Diffstat (limited to 'src')
-rw-r--r--src/tool_cfgable.c1
-rw-r--r--src/tool_cfgable.h1
-rw-r--r--src/tool_getparam.c5
-rw-r--r--src/tool_help.c2
-rw-r--r--src/tool_operate.c2
5 files changed, 11 insertions, 0 deletions
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index 7d088ae0f..0eb941ef6 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -43,6 +43,7 @@ void config_init(struct OperationConfig* config)
config->proto_default = NULL;
config->tcp_nodelay = TRUE; /* enabled by default */
config->happy_eyeballs_timeout_ms = CURL_HET_DEFAULT;
+ config->http09_allowed = TRUE;
}
static void free_config_fields(struct OperationConfig *config)
diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h
index 501c96189..81680dbbb 100644
--- a/src/tool_cfgable.h
+++ b/src/tool_cfgable.h
@@ -146,6 +146,7 @@ struct OperationConfig {
char *krblevel;
char *request_target;
long httpversion;
+ bool http09_allowed;
bool nobuffer;
bool readbusy; /* set when reading input returns EAGAIN */
bool globoff;
diff --git a/src/tool_getparam.c b/src/tool_getparam.c
index c0d3a84f2..c7ba5f243 100644
--- a/src/tool_getparam.c
+++ b/src/tool_getparam.c
@@ -199,6 +199,7 @@ static const struct LongShort aliases[]= {
{"01", "http1.1", ARG_NONE},
{"02", "http2", ARG_NONE},
{"03", "http2-prior-knowledge", ARG_NONE},
+ {"09", "http0.9", ARG_BOOL},
{"1", "tlsv1", ARG_NONE},
{"10", "tlsv1.0", ARG_NONE},
{"11", "tlsv1.1", ARG_NONE},
@@ -1183,6 +1184,10 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
/* HTTP version 2.0 over clean TCP*/
config->httpversion = CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE;
break;
+ case '9':
+ /* Allow HTTP/0.9 responses! */
+ config->http09_allowed = toggle;
+ break;
}
break;
case '1': /* --tlsv1* options */
diff --git a/src/tool_help.c b/src/tool_help.c
index 484c5219c..92cb6ca05 100644
--- a/src/tool_help.c
+++ b/src/tool_help.c
@@ -176,6 +176,8 @@ static const struct helptxt helptext[] = {
"This help text"},
{" --hostpubmd5 <md5>",
"Acceptable MD5 hash of the host public key"},
+ {" --http0.9",
+ "Allow HTTP 0.9 responses"},
{"-0, --http1.0",
"Use HTTP 1.0"},
{" --http1.1",
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 429e9cf46..7161714d6 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -1005,6 +1005,8 @@ static CURLcode operate_do(struct GlobalConfig *global,
/* new in libcurl 7.21.6 */
if(config->tr_encoding)
my_setopt(curl, CURLOPT_TRANSFER_ENCODING, 1L);
+ /* new in libcurl 7.64.0 */
+ my_setopt(curl, CURLOPT_HTTP09_ALLOWED, config->http09_allowed);
} /* (built_in_protos & CURLPROTO_HTTP) */