-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP/2 downgrade to HTTP/1.1 not working #11357
Labels
Comments
@icing this feels like something we should be able to add a test for these days, right? |
icing
added a commit
to icing/curl
that referenced
this issue
Jun 21, 2023
- refs curl#11357, where it was reported that HTTP/1.1 downgrades no longer works - fixed with suggested change - added test_05_03 and a new handler in the curltest module to reproduce that downgrades work
Added #11362 in the now more depressing github UI. |
bch
pushed a commit
to bch/curl
that referenced
this issue
Jul 19, 2023
- refs curl#11357, where it was reported that HTTP/1.1 downgrades no longer works - fixed with suggested change - added test_05_03 and a new handler in the curltest module to reproduce that downgrades work Fixes curl#11357 Closes curl#11362 Reported-by: Jay Satiro
ptitSeb
pushed a commit
to wasix-org/curl
that referenced
this issue
Sep 25, 2023
- refs curl#11357, where it was reported that HTTP/1.1 downgrades no longer works - fixed with suggested change - added test_05_03 and a new handler in the curltest module to reproduce that downgrades work Fixes curl#11357 Closes curl#11362 Reported-by: Jay Satiro
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I did this
Investigating #11034 which has a URL that when requested via HTTP/2 replies with RST_STREAM error HTTP_1_1_REQUIRED. libcurl should retry the transfer with HTTP/1.1 but doesn't. (Note the reporter in that issue builds libcurl without HTTP/2 so it is an unrelated issue).
Bisected to cab2d56 @icing
That commit changes http2_handle_stream_close to return a generic error before checking for CURLE_HTTP2_STREAM, which means CURLE_HTTP2_STREAM is never returned, the error is no longer properly output in verbose mode as HTTP_1_1_REQUIRED, and later code in libcurl to handle the downgrade is never reached:
curl/lib/http2.c
Lines 1579 to 1598 in 51f6a0d
curl/lib/multi.c
Lines 2479 to 2500 in 51f6a0d
It's unclear to me why
else if(stream->reset)
block needs to come before. Changing it back works but I don't know why it was changed in the first place there may be a good reason./cc @icing
The text was updated successfully, but these errors were encountered: