mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
http2: leave WAITPERFORM when conn is multiplexed
No need to wait for our "spot" like for pipelining
This commit is contained in:
parent
01e1bdb10c
commit
f4b8b39881
@ -1120,6 +1120,7 @@ CURLcode Curl_http2_setup(struct connectdata *conn)
|
|||||||
httpc->upload_mem = NULL;
|
httpc->upload_mem = NULL;
|
||||||
httpc->upload_len = 0;
|
httpc->upload_len = 0;
|
||||||
|
|
||||||
|
conn->bits.multiplex = TRUE; /* at least potentially multiplexed */
|
||||||
conn->httpversion = 20;
|
conn->httpversion = 20;
|
||||||
conn->bundle->server_supports_pipelining = TRUE;
|
conn->bundle->server_supports_pipelining = TRUE;
|
||||||
|
|
||||||
|
@ -1429,9 +1429,10 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
|||||||
|
|
||||||
case CURLM_STATE_WAITPERFORM:
|
case CURLM_STATE_WAITPERFORM:
|
||||||
/* Wait for our turn to PERFORM */
|
/* Wait for our turn to PERFORM */
|
||||||
if(!data->easy_conn->readchannel_inuse &&
|
if((!data->easy_conn->readchannel_inuse &&
|
||||||
isHandleAtHead(data,
|
isHandleAtHead(data,
|
||||||
data->easy_conn->recv_pipe)) {
|
data->easy_conn->recv_pipe)) ||
|
||||||
|
data->easy_conn->bits.multiplex) {
|
||||||
/* Grab the channel */
|
/* Grab the channel */
|
||||||
data->easy_conn->readchannel_inuse = TRUE;
|
data->easy_conn->readchannel_inuse = TRUE;
|
||||||
multistate(data, CURLM_STATE_PERFORM);
|
multistate(data, CURLM_STATE_PERFORM);
|
||||||
|
@ -530,6 +530,7 @@ struct ConnectBits {
|
|||||||
bool bound; /* set true if bind() has already been done on this socket/
|
bool bound; /* set true if bind() has already been done on this socket/
|
||||||
connection */
|
connection */
|
||||||
bool type_set; /* type= was used in the URL */
|
bool type_set; /* type= was used in the URL */
|
||||||
|
bool multiplex; /* connection is multiplexed */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hostname {
|
struct hostname {
|
||||||
|
Loading…
Reference in New Issue
Block a user