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
This commit is contained in:
Stefan Eissing 2024-03-27 15:01:06 +01:00 committed by Daniel Stenberg
parent c03556fb18
commit c6655f7029
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
14 changed files with 561 additions and 232 deletions

View file

@ -205,7 +205,7 @@ test1590 test1591 test1592 test1593 test1594 test1595 test1596 test1597 \
test1598 \
test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \
test1608 test1609 test1610 test1611 test1612 test1613 test1614 test1615 \
\
test1616 \
test1620 test1621 \
\
test1630 test1631 test1632 test1633 test1634 test1635 \

22
tests/data/test1616 Normal file
View file

@ -0,0 +1,22 @@
<testcase>
<info>
<keywords>
unittest
hash
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<features>
unittest
</features>
<name>
Internal hash_offt create/add/destroy testing, exercising clean functions
</name>
</client>
</testcase>