diff options
author | Daniel Stenberg <daniel@haxx.se> | 2018-12-17 15:46:56 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2018-12-20 17:08:15 +0100 |
commit | b7fa892d76fa510ddd975c50a94a1e61b614930b (patch) | |
tree | a9b686c47e7b4bbc051845597337d630b942263b /lib/http.c | |
parent | 0b9fadf81fae1adaefa925c49c8655bc40971168 (diff) | |
download | curl-b7fa892d76fa510ddd975c50a94a1e61b614930b.tar.gz |
http: added options for allowing HTTP/0.9 responsesbagder/http09
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
Diffstat (limited to 'lib/http.c')
-rw-r--r-- | lib/http.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/http.c b/lib/http.c index 07665743c..8866fdf0a 100644 --- a/lib/http.c +++ b/lib/http.c @@ -3221,6 +3221,10 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data, k->header = FALSE; k->badheader = HEADER_ALLBAD; streamclose(conn, "bad HTTP: No end-of-message indicator"); + if(!data->set.http09_allowed) { + failf(data, "Received HTTP/0.9 when not allowed\n"); + return CURLE_UNSUPPORTED_PROTOCOL; + } break; } } @@ -3254,6 +3258,10 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data, if(st == STATUS_BAD) { streamclose(conn, "bad HTTP: No end-of-message indicator"); /* this is not the beginning of a protocol first header line */ + if(!data->set.http09_allowed) { + failf(data, "Received HTTP/0.9 when not allowed\n"); + return CURLE_UNSUPPORTED_PROTOCOL; + } k->header = FALSE; if(*nread) /* since there's more, this is a partial bad header */ |