Fix keep-alive without header in HTTP client
This commit is contained in:
parent
1aa1f42963
commit
673caa5f46
1 changed files with 6 additions and 7 deletions
|
@ -426,11 +426,10 @@ Error HTTPClient::poll() {
|
||||||
response_headers.clear();
|
response_headers.clear();
|
||||||
response_num = RESPONSE_OK;
|
response_num = RESPONSE_OK;
|
||||||
|
|
||||||
// Per the HTTP 1.1 spec, keep-alive is the default, but in practice
|
// Per the HTTP 1.1 spec, keep-alive is the default.
|
||||||
// it's safe to assume it only if the explicit header is found, allowing
|
// Not following that specification breaks standard implemetations.
|
||||||
// to handle body-up-to-EOF responses on naive servers; that's what Curl
|
// Broken web servers should be fixed.
|
||||||
// and browsers do
|
bool keep_alive = true;
|
||||||
bool keep_alive = false;
|
|
||||||
|
|
||||||
for (int i = 0; i < responses.size(); i++) {
|
for (int i = 0; i < responses.size(); i++) {
|
||||||
|
|
||||||
|
@ -447,8 +446,8 @@ Error HTTPClient::poll() {
|
||||||
if (encoding == "chunked") {
|
if (encoding == "chunked") {
|
||||||
chunked = true;
|
chunked = true;
|
||||||
}
|
}
|
||||||
} else if (s.begins_with("connection: keep-alive")) {
|
} else if (s.begins_with("connection: close")) {
|
||||||
keep_alive = true;
|
keep_alive = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == 0 && responses[i].begins_with("HTTP")) {
|
if (i == 0 && responses[i].begins_with("HTTP")) {
|
||||||
|
|
Loading…
Reference in a new issue