mirror of
https://github.com/curl/curl.git
synced 2026-08-25 02:53:32 +03:00
http: adjust_pollset fix
do not add a socket for POLLIN when the transfer does not want to send
(for example is paused).
Follow-up to 47f5b1a
Reported-by: bubbleguuum on github
Fixes #12632
Closes #12633
This commit is contained in:
parent
07bcae89d5
commit
8e2d7b9fa4
4 changed files with 8 additions and 7 deletions
|
|
@ -1166,9 +1166,10 @@ static void cf_ngtcp2_adjust_pollset(struct Curl_cfilter *cf,
|
|||
bool c_exhaust, s_exhaust;
|
||||
|
||||
CF_DATA_SAVE(save, cf, data);
|
||||
c_exhaust = !ngtcp2_conn_get_cwnd_left(ctx->qconn) ||
|
||||
!ngtcp2_conn_get_max_data_left(ctx->qconn);
|
||||
s_exhaust = stream && stream->id >= 0 && stream->quic_flow_blocked;
|
||||
c_exhaust = want_send && (!ngtcp2_conn_get_cwnd_left(ctx->qconn) ||
|
||||
!ngtcp2_conn_get_max_data_left(ctx->qconn));
|
||||
s_exhaust = want_send && stream && stream->id >= 0 &&
|
||||
stream->quic_flow_blocked;
|
||||
want_recv = (want_recv || c_exhaust || s_exhaust);
|
||||
want_send = (!s_exhaust && want_send) ||
|
||||
!Curl_bufq_is_empty(&ctx->q.sendbuf);
|
||||
|
|
|
|||
|
|
@ -1189,7 +1189,7 @@ static void cf_quiche_adjust_pollset(struct Curl_cfilter *cf,
|
|||
|
||||
c_exhaust = FALSE; /* Have not found any call in quiche that tells
|
||||
us if the connection itself is blocked */
|
||||
s_exhaust = stream && stream->id >= 0 &&
|
||||
s_exhaust = want_send && stream && stream->id >= 0 &&
|
||||
(stream->quic_flow_blocked || !stream_is_writeable(cf, data));
|
||||
want_recv = (want_recv || c_exhaust || s_exhaust);
|
||||
want_send = (!s_exhaust && want_send) ||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue