mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-19 09:51:01 +01:00
This code deals with header insertion, retrieval and eviction, as well as with dynamic header table defragmentation. It is functional for use as a decoder and was heavily tested in this context. There's still some room for optimization (eg: the defragmentation code currently does it in place using a memcpy). Also for now the dynamic header table is allocated using malloc() while a pool needs to be created instead. This code was mostly imported from https://github.com/wtarreau/http2-exp with "hpack_" prepended in front of most names to avoid risks of conflicts. Some small cleanups and renamings were applied during the import. This version must be considered more recent. Some HPACK error codes were placed here (HPACK_ERR_*), not exactly because they're needed by the decoder but they'll be needed by all callers. Maybe a different location should be found.