haproxy/include/common
Willy Tarreau f24ea8e45e MEDIUM: h2: add a function to emit an HTTP/1 request from a headers list
The current H2 to H1 protocol conversion presents some issues which will
require to perform some processing on certain headers before writing them
so it's not possible to convert HPACK to H1 on the fly.

Here we introduce a function which performs half of what hpack_decode_header()
used to do, which is to take a list of headers on input and emit the
corresponding request in HTTP/1.1 format. The code is the same and functions
were renamed to be prefixed with "h2" instead of "hpack", though it ends
up being simpler as the various HPACK-specific cases could be fused into
a single one (ie: add header).

Moving this part here makes a lot of sense as now this code is specific to
what is documented in HTTP/2 RFC 7540 and will be able to deal with special
cases related to H2 to H1 conversion enumerated in section 8.1.

Various error codes which were previously assigned to HPACK were never
used (aside being negative) and were all replaced by -1 with a comment
indicating what error was detected. The code could be further factored
thanks to this but this commit focuses on compatibility first.

This code is not yet used but builds fine.
2017-11-21 21:13:33 +01:00
..
accept4.h
base64.h
buffer.h BUG/MINOR: buffers: Fix b_alloc_margin to be "fonctionnaly" thread-safe 2017-11-13 11:42:48 +01:00
cfgparse.h MEDIUM: cfgparse: post parsing registration 2017-10-27 10:15:56 +02:00
chunk.h BUG/MEDIUM: threads: Run the poll loop on the main thread too 2017-10-31 13:58:33 +01:00
compat.h
compiler.h BUILD: compiler: add a new type modifier __maybe_unused 2017-11-20 21:27:27 +01:00
config.h MINOR: threads: Add THREAD_LOCAL macro 2017-10-31 11:36:13 +01:00
debug.h
defaults.h MINOR: log: Add logurilen tunable. 2017-06-02 11:06:36 +02:00
epoll.h
errors.h
h2.h MEDIUM: h2: add a function to emit an HTTP/1 request from a headers list 2017-11-21 21:13:33 +01:00
hash.h
hathreads.h BUG/MINOR: threads: tid_bit must be a unsigned long 2017-11-14 18:11:28 +01:00
hpack-dec.h MINOR: hpack: implement the decoder 2017-10-31 18:03:24 +01:00
hpack-enc.h MEDIUM: hpack: implement basic hpack encoding 2017-10-31 18:03:24 +01:00
hpack-huff.h MINOR: hpack: implement the HPACK Huffman table decoder 2017-10-31 18:03:24 +01:00
hpack-tbl.h MINOR: hpack: implement the header tables management 2017-10-31 18:03:24 +01:00
http-hdr.h MINOR: http: add very simple header management based on double strings 2017-10-22 09:54:14 +02:00
ist.h MINOR: ist: add ist0() to add a trailing zero to a string. 2017-10-19 15:01:08 +02:00
memory.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
mini-clist.h MEDIUM: lists: list_for_each_entry{_safe}_from functions 2017-10-31 03:44:11 +01:00
namespace.h
net_helper.h MINOR: net_helper: add 64-bit read/write functions 2017-09-21 06:27:08 +02:00
rbtree.h
regex.h MINOR: threads/regex: Change Regex trash buffer into a thread local variable 2017-10-31 13:58:31 +01:00
splice.h
standard.h MINOR: tools: emphasize the node being worked on in the tree dump 2017-11-15 19:43:05 +01:00
syscall.h
template.h
ticks.h
time.h MEDIUM: threads/time: Many global variables from time.h are now thread-local 2017-10-31 13:58:30 +01:00
tools.h
uri_auth.h
version.h
xref.h MEDIUM: threads/xref: Convert xref function to a thread safe model 2017-10-31 13:58:32 +01:00