]> git.ipfire.org Git - thirdparty/curl.git/commit
http3: improvements across backends
authorStefan Eissing <stefan@eissing.org>
Thu, 30 Mar 2023 11:00:51 +0000 (13:00 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 31 Mar 2023 13:44:57 +0000 (15:44 +0200)
commit544abeea83f8fc088425ea835998eaeb1bcca5ba
tree47c0aadfa57ef208dddebd6d411a40653da0a501
parenta094ec1a85fd82e86a0e2cc40d9cf699ee2003d1
http3: improvements across backends

- ngtcp2: using bufq for recv stream data
- internal stream_ctx instead of `struct HTTP` members
  for quiche, ngtcp2 and msh3
- no more QUIC related members in `struct HTTP`
- experimental use of recvmmsg(), disabled by default
  - testing on my old debian box shows no throughput improvements.
  - leaving it in, but disabled, for future revisit
- vquic: common UDP receive code for ngtcp2 and quiche
- vquic: common UDP send code for ngtcp2 and quiche
- added pytest skips for known msh3 failures
- fix unit2601 to survive torture testing
- quiche: using latest `master` from quiche and enabling large download
  tests, now that key change is supported
- fixing test_07_21 where retry handling of starting a stream
  was faulty
- msh3: use bufq for recv buffering headers and data
- msh3: replace fprintf debug logging with LOG_CF where possible
- msh3: force QUIC expire timers on recv/send to have more than
  1 request per second served

Closes #10772
14 files changed:
lib/bufq.c
lib/bufq.h
lib/http.h
lib/vquic/curl_msh3.c
lib/vquic/curl_ngtcp2.c
lib/vquic/curl_quiche.c
lib/vquic/vquic.c
lib/vquic/vquic_int.h
tests/http/test_02_download.py
tests/http/test_03_goaway.py
tests/http/test_05_errors.py
tests/http/test_07_upload.py
tests/http/test_08_caddy.py
tests/unit/unit2601.c