haproxy/include/common
Willy Tarreau c9fa0480af MAJOR: buffer: finalize buffer detachment
Now the buffers only contain the header and a pointer to the storage
area which can be anywhere. This will significantly simplify buffer
swapping and will make it possible to map chunks on buffers as well.

The buf_empty variable was removed, as now it's enough to have size==0
and area==NULL to designate the empty buffer (thus a non-allocated head
is the empty buffer by default). buf_wanted for now is indicated by
size==0 and area==(void *)1.

The channels and the checks now embed the buffer's head, and the only
pointer is to the storage area. This slightly increases the unallocated
buffer size (3 extra ints for the empty buffer) but considerably
simplifies dynamic buffer management. It will also later permit to
detach unused checks.

The way the struct buffer is arranged has proven quite efficient on a
number of tests, which makes sense given that size is always accessed
and often first, followed by the othe ones.
2018-07-19 16:23:43 +02:00
..
accept4.h
base64.h
buf.h MAJOR: buffer: finalize buffer detachment 2018-07-19 16:23:43 +02:00
buffer.h MAJOR: buffer: finalize buffer detachment 2018-07-19 16:23:43 +02:00
cfgparse.h MINOR: Some spelling cleanup in the comments. 2018-06-21 20:43:52 +02:00
chunk.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
compat.h
compiler.h MINOR: compiler: introduce offsetoff(). 2018-02-05 14:24:50 +01:00
config.h BUG/MINOR: pools/threads: don't ignore DEBUG_UAF on double-word CAS capable archs 2018-02-22 14:18:45 +01:00
debug.h
defaults.h MINOR: tasks: Make the number of tasks to run at once configurable. 2018-05-26 20:03:24 +02:00
epoll.h
errors.h
h2.h MINOR: h2: detect presence of CONNECT and/or content-length 2018-04-26 10:15:14 +02:00
hash.h MINOR: hash: add new function hash_crc32c 2018-03-21 05:04:01 +01:00
hathreads.h BUG/MINOR: signals: ha_sigmask macro for multithreading 2018-06-08 18:24:53 +02:00
hpack-dec.h MEDIUM: h2: change hpack_decode_headers() to only provide a list of headers 2017-11-21 21:13:36 +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 BUG/MAJOR: hpack: don't pretend large headers fit in empty table 2017-12-04 18:06:51 +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
istbuf.h MINOR: buffer: rename the data length member to '->data' 2018-07-19 16:23:43 +02:00
memory.h MINOR: debug/pools: make DEBUG_UAF also detect underflows 2018-02-22 14:18:45 +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
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 CLEANUP: standard: Fix typo in IPv6 mask example 2018-02-21 05:07:35 +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 [RELEASE] Released version 1.9-dev0 2017-11-26 19:50:17 +01:00
xref.h MEDIUM: threads/xref: Convert xref function to a thread safe model 2017-10-31 13:58:32 +01:00