From 652fd3fab820d786b62997e3700517e5f2e31d78 Mon Sep 17 00:00:00 2001 From: Garrett Squire Date: Fri, 6 May 2022 17:34:14 -0700 Subject: [PATCH] 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 --- lib/c-hyper.c | 12 ++++++++++++ tests/data/DISABLED | 1 - 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/c-hyper.c b/lib/c-hyper.c index de09568741..69082982cf 100644 --- a/lib/c-hyper.c +++ b/lib/c-hyper.c @@ -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"); diff --git a/tests/data/DISABLED b/tests/data/DISABLED index 453a0ecebe..fe06367b4d 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -42,7 +42,6 @@ %if hyper 265 266 -357 565 579 587 -- 2.47.3