]> git.ipfire.org Git - thirdparty/curl.git/commit
http/2, http/3: decouple stream state from easy handle
authorStefan Eissing <stefan@eissing.org>
Wed, 27 Mar 2024 14:01:06 +0000 (15:01 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 17 Apr 2024 12:24:09 +0000 (14:24 +0200)
commitc6655f7029ec5c128561e3ecf1f93db3ed0432a4
tree252752a9f75cdc58276064dcf5c0d91c89383a3f
parentc03556fb18c3ab3710ad940d0252befdcca9f89b
http/2, http/3: decouple stream state from easy handle

- add `Curl_hash_offt` as hashmap between a `curl_off_t` and
  an object. Use this in h2+h3 connection filters to associate
  `data->id` with the internal stream state.
- changed implementations of all affected connection filters
- removed `h2_ctx*` and `h3_ctx*` from `struct HTTP` and thus
  the easy handle
- solves the problem of attaching "foreign protocol" easy handles
  during connection shutdown

Test 1616 verifies the new hash functions.

Closes #13204
14 files changed:
lib/cfilters.c
lib/cfilters.h
lib/hash.c
lib/hash.h
lib/http.h
lib/http2.c
lib/vquic/curl_msh3.c
lib/vquic/curl_ngtcp2.c
lib/vquic/curl_osslq.c
lib/vquic/curl_quiche.c
tests/data/Makefile.inc
tests/data/test1616 [new file with mode: 0644]
tests/unit/Makefile.inc
tests/unit/unit1616.c [new file with mode: 0644]