haproxy/include/haproxy
Remi Tricot-Le Breton ce9e7b2521 MEDIUM: cache: Manage a subset of encodings in accept-encoding normalizer
The accept-encoding normalizer now explicitely manages a subset of
encodings which will all have their own bit in the encoding bitmap
stored in the cache entry. This way two requests with the same primary
key will be served the same cache entry if they both explicitely accept
the stored response's encoding, even if their respective secondary keys
are not the same and do not match the stored response's one.
The actual hash of the accept-encoding will still be used if the
response's encoding is unmanaged.
The encoding matching and the encoding weight parsing are done for every
subpart of the accept-encoding values, and a bitmap of accepted
encodings is built for every request. It is then tested upon any stored
response that has the same primary key until one with an accepted
encoding is found.
The specific "identity" and "*" accept-encoding values are managed too.
When storing a response in the key, we also parse the content-encoding
header in order to only set the response's corresponding encoding's bit
in its cache_entry encoding bitmap.

This patch fixes GitHub issue #988.
It does not need to be backported.
2020-12-24 17:18:00 +01:00
..
acl-t.h MEDIUM: pattern: change the pat_del_* functions to delete from the references 2020-11-05 19:27:09 +01:00
acl.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
action-t.h MEDIUM: http_act: define set-timeout server/tunnel action 2020-12-11 12:01:07 +01:00
action.h MEDIUM: http_act: define set-timeout server/tunnel action 2020-12-11 12:01:07 +01:00
activity-t.h MINOR: activity: add per-thread statistics on FD takeover 2020-06-29 14:26:05 +02:00
activity.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
api-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
api.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
applet-t.h MEDIUM: cache: Add support for 'If-None-Match' request header 2020-10-22 16:10:20 +02:00
applet.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
arg-t.h MINOR: opentracing: add ARGC_OT enum 2020-12-16 15:49:53 +01:00
arg.h
atomic.h MINOR: atomic: don't use ; to separate instruction on aarch64. 2020-12-23 01:23:41 +01:00
auth-t.h CLEANUP: auth: fix useless self-include of auth-t.h 2020-07-05 21:32:47 +02:00
auth.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
backend-t.h MINOR: stats: report server's user-configured weight next to effective weight 2020-10-23 22:47:30 +02:00
backend.h MEDIUM: proxy: replace proxy->state with proxy->disabled 2020-10-09 11:27:30 +02:00
base64.h CLEANUP: include: don't include stddef.h directly 2020-06-11 10:18:59 +02:00
buf-t.h CLEANUP: include: don't include stddef.h directly 2020-06-11 10:18:59 +02:00
buf.h
bug.h MINOR: debug: don't count free(NULL) in memstats 2020-11-03 16:46:48 +01:00
capture-t.h
capture.h
cfgparse.h MINOR: cfgparse: add str2receiver() to parse dgram receivers 2020-09-16 22:08:08 +02:00
channel-t.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
channel.h BUG/MEDIUM: stream: Xfer the input buffer to a fully created stream 2020-12-04 17:15:03 +01:00
check-t.h BUG/MAJOR: tcpcheck: Allocate input and output buffers from the buffer pool 2020-11-27 10:29:41 +01:00
check.h REORG: tcpcheck: Move check option parsing functions based on tcp-check 2020-11-27 10:30:23 +01:00
chunk.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
cli-t.h MINOR: cli: add a function to look up a CLI service description 2020-12-02 09:45:18 +01:00
cli.h MINOR: cli: add a function to look up a CLI service description 2020-12-02 09:45:18 +01:00
compat.h MEDIUM: xxhash: use the XXH3 functions to generate 64-bit hashes 2020-12-23 06:39:21 +01:00
compiler.h BUILD: compiler: workaround a glibc madness around __attribute__() 2020-09-10 09:26:50 +02:00
compression-t.h
compression.h
connection-t.h MINOR: connection: Add a new xprt to connection. 2020-12-23 11:57:26 +01:00
connection.h MINOR: connection: make conn_sock_drain() use the control layer's ->drain() 2020-12-11 16:26:01 +01:00
counters-t.h MINOR: counters: fix a typo in comment 2020-10-05 09:05:57 +02:00
debug.h
defaults.h MEDIUM: xxhash: use the XXH_INLINE_ALL macro to inline all functions 2020-12-23 06:39:21 +01:00
dgram-t.h REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dgram.h REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dict-t.h REORG: include: move THREAD_LOCAL and __decl_thread() to compiler.h 2020-06-11 10:18:59 +02:00
dict.h
dns-t.h CLEANUP: tree-wide: reorder a few structures to plug some holes around locks 2020-10-19 14:08:13 +02:00
dns.h MINOR: dns/stats: integrate dns counters in stats 2020-10-05 12:02:14 +02:00
dynbuf-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
dynbuf.h BUG/MEDIUM: buffers: always allocate from the local cache first 2020-06-28 10:45:35 +02:00
errors.h REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
extcheck.h REORG: check: extract the external checks from check.{c,h} 2020-06-11 10:18:58 +02:00
fcgi-app-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
fcgi-app.h REORG: include: move stream.h to haproxy/stream{,-t}.h 2020-06-11 10:18:58 +02:00
fcgi.h
fd-t.h MINOR: fd: add a new "exported" flag and use it for all regular listeners 2020-08-26 18:33:52 +02:00
fd.h REORG: connection: move the socket iocb (conn_fd_handler) to sock.c 2020-12-11 16:26:00 +01:00
filters-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
filters.h BUG/MAJOR: filters: Always keep all offsets up to date during data filtering 2020-11-24 14:17:32 +01:00
fix-t.h MINOR: sample: Add converters to parse FIX messages 2020-11-05 19:26:30 +01:00
fix.h CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
flt_http_comp.h REORG: include: move proxy.h to haproxy/proxy{,-t}.h 2020-06-11 10:18:58 +02:00
freq_ctr-t.h
freq_ctr.h CLEANUP: include: make atomic.h part of the base API 2020-06-11 10:18:59 +02:00
frontend.h REORG: include: move stream.h to haproxy/stream{,-t}.h 2020-06-11 10:18:58 +02:00
global-t.h MINOR: config: Deprecate and ignore tune.chksize global option 2020-11-27 10:30:23 +01:00
global.h MINOR: init: Fix the prototype for per-thread free callbacks 2020-11-13 16:26:10 +01:00
h1_htx.h
h1.h
h2.h BUG/MEDIUM: h2: report frame bits only for handled types 2020-09-18 08:05:03 +02:00
hash.h
hlua_fcn.h
hlua-t.h MINOR: lua-thread: Store each function reference and init reference in array 2020-12-02 21:53:16 +01:00
hlua.h
hpack-dec.h
hpack-enc.h
hpack-huff.h
hpack-tbl-t.h BUILD: hpack: hpack-tbl-t.h uses VAR_ARRAY but does not include compiler.h 2020-12-22 10:18:07 +01:00
hpack-tbl.h CLEANUP: hpack: export debug functions and move inlines to .h 2020-06-11 10:18:58 +02:00
http_ana-t.h MEDIUM: cache: Manage a subset of encodings in accept-encoding normalizer 2020-12-24 17:18:00 +01:00
http_ana.h REORG: include: move stream.h to haproxy/stream{,-t}.h 2020-06-11 10:18:58 +02:00
http_fetch.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
http_htx-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
http_htx.h MINOR: http-htx: Add understandable errors for the errorfiles parsing 2020-11-06 09:13:58 +01:00
http_rules.h MINOR: actions: Export actions lookup functions 2020-12-02 09:45:18 +01:00
http-hdr-t.h
http-hdr.h
http-t.h MINOR: http: Add enum etag_type http_get_etag_type(const struct ist) 2020-10-22 16:02:29 +02:00
http.h MINOR: http: Add helper functions to trim spaces and tabs 2020-12-24 17:18:00 +01:00
htx-t.h CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
htx.h CLEANUP: htx: Remove HTX_FL_UPGRADE unsued flag 2020-12-04 14:41:49 +01:00
initcall.h
intops.h BUILD: intops: on x86_64, the bswap instruction is called bswapq 2020-09-10 09:31:50 +02:00
istbuf.h
lb_chash-t.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
lb_chash.h REORG: include: split global.h into haproxy/global{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fas-t.h REORG: include: move lb_fas.h to haproxy/lb_fas{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fas.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fwlc-t.h REORG: include: move lb_fwlc.h to haproxy/lb_fwlc{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fwlc.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fwrr-t.h REORG: include: move lb_fwrr.h to haproxy/lb_fwrr{,-t}.h 2020-06-11 10:18:58 +02:00
lb_fwrr.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
lb_map-t.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
lb_map.h REORG: include: move server.h to haproxy/server{,-t}.h 2020-06-11 10:18:58 +02:00
list-t.h
list.h BUG/MEDIUM: lists: Lock the element while we check if it is in a list. 2020-11-30 18:17:29 +01:00
listener-t.h MINOR: listener: Add QUIC info to listeners and receivers. 2020-12-23 11:57:26 +01:00
listener.h MINOR: listener: now use a generic add_listener() function 2020-12-04 15:08:00 +01:00
log-t.h MINOR: log: Logging HTTP path only with %HPO 2020-12-01 09:32:44 +01:00
log.h BUG/MINOR: proxy/log: frontend/backend and log forward names must differ 2020-10-08 08:53:26 +02:00
mailers-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
mailers.h REORG: check: move the e-mail alerting code to mailers.c 2020-06-11 10:18:58 +02:00
map-t.h REORG: include: move sample.h to haproxy/sample{,-t}.h 2020-06-11 10:18:58 +02:00
map.h REORG: include: move sample.h to haproxy/sample{,-t}.h 2020-06-11 10:18:58 +02:00
mqtt-t.h MINOR: sample: Add converts to parses MQTT messages 2020-11-05 19:27:03 +01:00
mqtt.h MINOR: sample: Add converts to parses MQTT messages 2020-11-05 19:27:03 +01:00
mworker-t.h REORG: include: move signal.h to haproxy/signal{,-t}.h 2020-06-11 10:18:58 +02:00
mworker.h REORG: include: move signal.h to haproxy/signal{,-t}.h 2020-06-11 10:18:58 +02:00
namespace-t.h CLEANUP: include: don't include stddef.h directly 2020-06-11 10:18:59 +02:00
namespace.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
net_helper.h
obj_type-t.h REORG: include: move obj_type.h to haproxy/obj_type{,-t}.h 2020-06-11 10:18:57 +02:00
obj_type.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
openssl-compat.h BUILD: ssl: fine guard for SSL_CTX_get0_privatekey call 2020-12-21 11:17:36 +01:00
pattern-t.h MEDIUM: pattern: turn the pattern chaining to single-linked list 2020-11-05 19:27:09 +01:00
pattern.h CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
payload.h REORG: include: move stream.h to haproxy/stream{,-t}.h 2020-06-11 10:18:58 +02:00
peers-t.h CLEANUP: tree-wide: reorder a few structures to plug some holes around locks 2020-10-19 14:08:13 +02:00
peers.h REORG: include: move stream.h to haproxy/stream{,-t}.h 2020-06-11 10:18:58 +02:00
pipe-t.h
pipe.h
pool-os.h
pool-t.h MINOR: pools: increase MAX_BASE_POOLS to 64 2020-06-30 14:29:02 +02:00
pool.h MINOR: pools: move the LRU cache heads to thread_info 2020-06-29 10:36:37 +02:00
port_range-t.h CLEANUP: tree-wide: use VAR_ARRAY instead of [0] in various definitions 2020-09-12 20:56:41 +02:00
port_range.h CLEANUP: include: make atomic.h part of the base API 2020-06-11 10:18:59 +02:00
proto_quic.h MINOR: protocol: Create proto_quic QUIC protocol layer. 2020-12-23 11:57:26 +01:00
proto_sockpair.h MINOR: protocol: export protocol definitions 2020-12-08 14:54:08 +01:00
proto_tcp.h MINOR: protocol: export protocol definitions 2020-12-08 14:54:08 +01:00
proto_udp.h MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver() 2020-12-08 18:10:18 +01:00
proto_uxst.h MINOR: protocol: export protocol definitions 2020-12-08 14:54:08 +01:00
protobuf-t.h REORG: include: move protocol_buffers.h to haproxy/protobuf{,-t}.h 2020-06-11 10:18:58 +02:00
protobuf.h REORG: include: move protocol_buffers.h to haproxy/protobuf{,-t}.h 2020-06-11 10:18:58 +02:00
protocol-t.h MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
protocol.h MINOR: protocol: add protocol_stop_now() to instant-stop listeners 2020-10-09 18:29:04 +02:00
proxy-t.h MINOR: stream: Add level 7 retries on http error 401, 403 2020-11-23 09:33:14 +01:00
proxy.h MINOR: stream: Add level 7 retries on http error 401, 403 2020-11-23 09:33:14 +01:00
queue-t.h REORG: include: move queue.h to haproxy/queue{,-t}.h 2020-06-11 10:18:58 +02:00
queue.h Revert "OPTIM: queue: don't call pendconn_unlink() when the pendconn is not queued" 2020-10-23 09:21:55 +02:00
quic_cc-t.h MINOR: quic: Add definitions for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_cc.h MINOR: quic: Add definitions for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_frame-t.h MAJOR: quic: Make usage of ebtrees to store QUIC ACK ranges. 2020-12-23 11:57:26 +01:00
quic_frame.h MINOR: quic: Add definitions for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_loss-t.h MINOR: quic: Add definitions for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_loss.h MINOR: quic: Add traces for in flght ack-eliciting packet counter. 2020-12-23 11:57:26 +01:00
quic_sock.h MINOR: quic: Add definitions for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_tls-t.h MINOR: quic: Add definitions for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_tls.h MINOR: quic: Add definitions for QUIC protocol. 2020-12-23 11:57:26 +01:00
receiver-t.h MINOR: listener: Add QUIC info to listeners and receivers. 2020-12-23 11:57:26 +01:00
regex-t.h OPTIM: regex: PCRE2 use JIT match when JIT optimisation occured. 2020-08-14 07:53:40 +02:00
regex.h OPTIM: regex: PCRE2 use JIT match when JIT optimisation occured. 2020-08-14 07:53:40 +02:00
ring-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
ring.h
sample_data-t.h CLEANUP: include: move sample_data out of sample-t.h 2020-06-11 10:18:59 +02:00
sample-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
sample.h CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
server-t.h MINOR: server: Add QUIC definitions to servers. 2020-12-23 11:57:26 +01:00
server.h BUG/MEDIUM: connection: fix srv idle count on conn takeover 2020-10-15 15:19:34 +02:00
session-t.h MINOR: session: Add the idle duration field into the session 2020-12-04 14:41:48 +01:00
session.h MINOR: session: Add functions to increase http values of tracked counters 2020-12-04 14:41:49 +01:00
shctx-t.h CLEANUP: tree-wide: use VAR_ARRAY instead of [0] in various definitions 2020-09-12 20:56:41 +02:00
shctx.h
signal-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
signal.h REORG: include: move signal.h to haproxy/signal{,-t}.h 2020-06-11 10:18:58 +02:00
sink-t.h CLEANUP: tree-wide: reorder a few structures to plug some holes around locks 2020-10-19 14:08:13 +02:00
sink.h MEDIUM: log/sink: re-work and merge of build message API. 2020-07-15 17:50:12 +02:00
sock_inet.h MINOR: protocol: add a ->set_port() helper to address families 2020-12-04 15:08:00 +01:00
sock_unix.h CLEANUP: protocol: remove the now unused <handler> field of proto_fam->bind() 2020-10-15 21:47:56 +02:00
sock-t.h MINOR: sock: distinguish dgram from stream types when retrieving old sockets 2020-08-28 19:26:39 +02:00
sock.h MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
spoe-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
spoe.h REORG: include: move spoe.h to haproxy/spoe{,-t}.h 2020-06-11 10:18:58 +02:00
ssl_ckch-t.h CLEANUP: ssl: remove utility functions for bundle 2020-09-16 16:28:26 +02:00
ssl_ckch.h CLEANUP: remove unused function "ssl_sock_is_ckch_valid" 2020-11-24 09:54:44 +01:00
ssl_crtlist-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
ssl_crtlist.h CLEANUP: assorted typo fixes in the code and comments 2020-06-26 11:27:28 +02:00
ssl_sock-t.h BUILD: SSL: guard TLS13 ciphersuites with HAVE_SSL_CTX_SET_CIPHERSUITES 2020-11-21 11:04:36 +01:00
ssl_sock.h MINOR: ssl: Export definitions required by QUIC. 2020-12-23 11:57:26 +01:00
ssl_utils.h REORG: include: move ssl_utils.h to haproxy/ssl_utils.h 2020-06-11 10:18:57 +02:00
stats-t.h BUG/MEDIUM: stats: prevent crash if counters not alloc with dummy one 2020-11-12 15:16:05 +01:00
stats.h MEDIUM: stats: integrate static proxies stats in new stats 2020-10-05 12:02:14 +02:00
stick_table-t.h CLEANUP: tree-wide: reorder a few structures to plug some holes around locks 2020-10-19 14:08:13 +02:00
stick_table.h MINOR: stick-tables: Add functions to update some values of a tracked counter 2020-12-04 14:41:49 +01:00
stream_interface-t.h REORG: include: move stream_interface.h to haproxy/stream_interface{,-t}.h 2020-06-11 10:18:58 +02:00
stream_interface.h MINOR: muxes: Remove get_cs_info callback function now useless 2020-12-04 14:41:48 +01:00
stream-t.h MEDIUM: stream: support a dynamic tunnel timeout 2020-12-11 12:01:07 +01:00
stream.h MINOR: stream: prepare the hot refresh of timeouts 2020-12-11 12:01:07 +01:00
task-t.h BUG/MEDIUM: task: close a possible data race condition on a tasklet's list link 2020-11-30 18:17:59 +01:00
task.h BUG/MEDIUM: task: close a possible data race condition on a tasklet's list link 2020-11-30 18:17:59 +01:00
tcp_rules.h MINOR: actions: Export actions lookup functions 2020-12-02 09:45:18 +01:00
tcpcheck-t.h CLEANUP: assorted typo fixes in the code and comments 2020-06-26 11:27:28 +02:00
tcpcheck.h REORG: tcpcheck: Move check option parsing functions based on tcp-check 2020-11-27 10:30:23 +01:00
thread-t.h MINOR: threads: change lock_t to an unsigned int 2020-10-19 14:08:13 +02:00
thread.h MINOR: threads/debug: only report lock stats for used operations 2020-10-22 17:32:28 +02:00
ticks.h
time.h MINOR: time: increase the minimum wakeup interval to 60s 2020-12-22 10:35:43 +01:00
tinfo-t.h MINOR: pools: move the LRU cache heads to thread_info 2020-06-29 10:36:37 +02:00
tinfo.h REORG: includes: create tinfo.h for the thread_info struct 2020-06-29 09:57:23 +02:00
tools-t.h MINOR: tools: support for word expansion of environment in parse_line 2020-10-01 17:24:14 +02:00
tools.h MINOR: tools: make str2sa_range() directly return the protocol 2020-09-16 22:08:08 +02:00
trace-t.h MINOR: traces: add a new level "error" below the "user" level 2020-12-01 10:25:20 +01:00
trace.h MINOR: traces: add a new level "error" below the "user" level 2020-12-01 10:25:20 +01:00
uri_auth-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
uri_auth.h REORG: include: split common/uri_auth.h into haproxy/uri_auth{,-t}.h 2020-06-11 10:18:58 +02:00
vars-t.h REORG: include: make list-t.h part of the base API 2020-06-11 10:18:59 +02:00
vars.h MINOR: vars: replace static functions with global ones 2020-12-16 14:20:08 +01:00
version.h [RELEASE] Released version 2.4-dev0 2020-11-05 17:20:35 +01:00
xprt_quic-t.h MINOR: quic: Add traces for quic_packet_encrypt(). 2020-12-23 11:57:26 +01:00
xprt_quic.h MINOR: quic: Add traces for in flght ack-eliciting packet counter. 2020-12-23 11:57:26 +01:00
xref-t.h
xref.h CLEANUP: include: make atomic.h part of the base API 2020-06-11 10:18:59 +02:00