mirror of
https://github.com/curl/curl.git
synced 2026-08-24 16:03:37 +03:00
http2: avoid too early connection re-use/multiplexing
HTTP/1 connections that are upgraded to HTTP/2 should not be picked up for reuse and multiplexing by other handles until the 101 switching process is completed. Lots-of-debgging-by: Stefan Eissing Reported-by: Richard W.M. Jones Bug: https://curl.se/mail/lib-2023-07/0045.html Closes #11557
This commit is contained in:
parent
15c40a32b7
commit
d4618a3fc4
5 changed files with 42 additions and 20 deletions
12
lib/multi.c
12
lib/multi.c
|
|
@ -1577,6 +1577,18 @@ static bool multi_ischanged(struct Curl_multi *multi, bool clear)
|
|||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
* Curl_multi_connchanged() is called to tell that there is a connection in
|
||||
* this multi handle that has changed state (multiplexing become possible, the
|
||||
* number of allowed streams changed or similar), and a subsequent use of this
|
||||
* multi handle should move CONNECT_PEND handles back to CONNECT to have them
|
||||
* retry.
|
||||
*/
|
||||
void Curl_multi_connchanged(struct Curl_multi *multi)
|
||||
{
|
||||
multi->recheckstate = TRUE;
|
||||
}
|
||||
|
||||
CURLMcode Curl_multi_add_perform(struct Curl_multi *multi,
|
||||
struct Curl_easy *data,
|
||||
struct connectdata *conn)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue