mirror of
https://github.com/moparisthebest/curl
synced 2024-11-16 06:25:03 -05:00
http2: skip immediate parsing of payload following protocol switch
This is considered not harmful as a following http2_recv shall be called very soon. This is considered helpful in the specific situation where some servers (e.g. nghttpx v1.43.0) may fulfill stream 1 immediately following the return of HTTP status 101, other than waiting for the client-side connection preface to arrive. Fixes #7036 Closes #7040
This commit is contained in:
parent
651a75e1e7
commit
455a63c66f
11
lib/http2.c
11
lib/http2.c
@ -2335,8 +2335,15 @@ CURLcode Curl_http2_switched(struct Curl_easy *data,
|
|||||||
|
|
||||||
DEBUGASSERT(httpc->nread_inbuf == 0);
|
DEBUGASSERT(httpc->nread_inbuf == 0);
|
||||||
|
|
||||||
if(-1 == h2_process_pending_input(data, httpc, &result))
|
/* Good enough to call it an end once the remaining payload is copied to the
|
||||||
return CURLE_HTTP2;
|
* connection buffer.
|
||||||
|
* Some servers (e.g. nghttpx v1.43.0) may fulfill stream 1 immediately
|
||||||
|
* following the protocol switch other than waiting for the client-side
|
||||||
|
* connection preface. If h2_process_pending_input is invoked here to parse
|
||||||
|
* the remaining payload, stream 1 would be marked as closed too early and
|
||||||
|
* thus ignored in http2_recv (following 252790c53).
|
||||||
|
* The logic in lib/http.c and lib/transfer.c guarantees a following
|
||||||
|
* http2_recv would be invoked very soon. */
|
||||||
|
|
||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user