hyper: fix test 357

This change fixes the hyper API such that PUT requests that receive a
417 response can retry without the Expect header.

Closes #8811
This commit is contained in:
Garrett Squire 2022-05-06 17:34:14 -07:00 committed by Daniel Stenberg
parent 4fc35c829c
commit 652fd3fab8
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 12 additions and 1 deletions

View File

@ -439,6 +439,13 @@ CURLcode Curl_hyper_stream(struct Curl_easy *data,
reasonp = hyper_response_reason_phrase(resp);
reason_len = hyper_response_reason_phrase_len(resp);
if(http_status == 417 && data->state.expect100header) {
infof(data, "Got 417 while waiting for a 100");
data->state.disableexpect = TRUE;
data->req.newurl = strdup(data->state.url);
Curl_done_sending(data, k);
}
result = status_line(data, conn,
http_status, http_version, reasonp, reason_len);
if(result)
@ -951,6 +958,11 @@ CURLcode Curl_http(struct Curl_easy *data, bool *done)
goto error;
}
}
else {
if(!h2 && !data->state.disableexpect) {
data->state.expect100header = TRUE;
}
}
if(hyper_request_set_method(req, (uint8_t *)method, strlen(method))) {
failf(data, "error setting method");

View File

@ -42,7 +42,6 @@
%if hyper
265
266
357
565
579
587