]> git.ipfire.org Git - thirdparty/curl.git/commit
http/3: resume upload on ack if we have more data to send
authorAlex Snast <alexsn@meta.com>
Wed, 17 Jul 2024 11:06:06 +0000 (14:06 +0300)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 18 Jul 2024 13:08:03 +0000 (15:08 +0200)
commitf504db89282d81ffc387e2e5e4449fb97b4665d7
tree7957f44f404d2e67c8e0a6de858c49a0b12e7c7b
parentc3c7992ac75ceb96ca7eeb48aff8bab428a41758
http/3: resume upload on ack if we have more data to send

Currently we're waiting for sendbuf_len_in_flight to hit zero before
resuming upload which means we're blocking and waiting for _all_ acks to
arrive before sending more data. This causes significant delays especially
when ack delay is used on the server side.

The fix addresses several issues in h3 over ngtcp2:
  - On ack we now call nghttp3_conn_resume_stream() when we have more
    data to send.
  - upload_left was incorrectly computed on CF_CTRL_DATA_DONE_SEND as
    we need to subtract the ammount of data we have in flight.
  - Remove upload_blocked_len as we Curl_bufq_write call will do the
    right thing when called from cf_ngtcp2_send.

Fixes #14198
Closes #14209
lib/vquic/curl_ngtcp2.c
lib/vquic/curl_osslq.c