version 2.4r1

2021/11/25 : 2.4r1 (1.0.0-268.459) - BUILD/MINOR: server: fix compilation without SSL - HAPEE: Update backported and hapee patches - BUG/MINOR: cache: Fix loop on cache entries in "show cache" - MINOR: promex: backend aggregated server check status - MINOR: server: add ws keyword - MEDIUM: server/backend: implement websocket protocol selection - MINOR: connection: add alternative mux_ops param for conn_install_mux_be - MINOR: connection: implement function to update ALPN - MINOR: stream/mux: implement websocket stream flag - BUG/MINOR: ssl: make SSL counters atomic - MINOR: shctx: add a few BUG_ON() for consistency checks - BUG/MINOR: shctx: do not look for available blocks when the first one is enough - BUG/MEDIUM: shctx: leave the block allocator when enough blocks are found - BUG/MEDIUM: cache/cli: make "show cache" thread-safe - BUG/MEDIUM: mux-h2: always process a pending shut read - BUG/MEDIUM: ssl: abort with the correct SSL error when SNI not found - CLEANUP: ssl: fix wrong #else commentary - BUG/MINOR: ssl: free correctly the sni in the backend SSL cache - BUG/MEDIUM: ssl: backend TLS resumption with sni and TLSv1.3 - BUILD: makefile: simplify detection of libatomic - BUG/MEDIUM: mux-h1: Handle delayed silent shut in h1_process() to release H1C - BUG/MINOR: stick-table/cli: Check for invalid ipv6 key - BUG/MEDIUM: connection: make cs_shutr/cs_shutw//cs_close() idempotent - BUG/MINOR: mux-h2: Fix H2_CF_DEM_SHORT_READ value - BUG/MINOR: mworker: doesn't launch the program postparser - BUG/MEDIUM: conn-stream: Don't reset CS flags on close - MINOR: mux-h1: Slightly Improve H1 traces - DOC: lua: Be explicit with the Reply object limits - Revert "BUG/MINOR: http-ana: Don't eval front after-response rules if stopped on back" - BUG/MINOR: http-ana: Apply stop to the current section for http-response rules - DOC: config: Fix typo in ssl_fc_unique_id description - BUG/MINOR: cache: properly ignore unparsable max-age in quotes - BUG/MINOR: resolvers: throw log message if trash not large enough for query - BUG/MINOR: resolvers: fix sent messages were counted twice - BUG/MEDIUM: mux-h2: reject upgrade if no RFC8441 support - MINOR: mux-h2: add trace on extended connect usage - MINOR: mux-h2: perform a full cycle shutdown+drain on close - MINOR: connection: add a new CO_FL_WANT_DRAIN flag to force drain on close - SCRIPTS: git-show-backports: re-enable file-based filtering - DOC/peers: some grammar fixes for peers 2.1 spec - MINOR: stream: Improve dump of bogus streams - BUILD/MINOR: cpuset freebsd build fix - DOC: config: Fix alphabetical order of fc_* samples - BUG/MINOR: sample: fix backend direction flags consecutive to last fix - BUG/MEDIUM: sample: Cumulate frontend and backend sample validity flags - BUG/MEDIUM: stream-int: Block reads if channel cannot receive more data - BUG/MINOR: http: Authorization value can have multiple spaces after the scheme - BUG/MEDIUM: http-ana: Drain request data waiting the tarpit timeout expiration - MINOR: halog: Add support for extracting captures using -hdr - BUG/MINOR: halog: Add missing newlines in die() messages - CLEANUP: halog: Use consistent indentation in help() - MINOR: halog: Rename -qry to -query - DOC: halog: Move the `-qry` parameter into the correct section in help text - MINOR: halog: Add -qry parameter allowing to preserve the query string in -uX - BUG/MEDIUM: resolvers: Track api calls with a counter to free resolutions - BUG/MEDIUM: resolvers: Don't recursively perform requester unlink - MEDIUM: resolvers: remove the last occurrences of the "safe" argument - MEDIUM: resolvers: use a kill list to preserve the list consistency - CLEANUP: resolvers: replace all LIST_DELETE with LIST_DEL_INIT - CLEANUP: resolvers: simplify resolv_link_resolution() regarding requesters - CLEANUP: always initialize the answer_list - CLEANUP: resolvers: do not export resolv_purge_resolution_answer_records() - BUG/MEDIUM: mux-h1: Perform a connection shutdown when the h1c is released - BUG/MINOR: mux-h1: Save shutdown mode if the shutdown is delayed - BUILD: atomic: fix build on mac/arm64 - BUG/MINOR: backend: fix improper insert in avail tree for always reuse - BUILD: fix compilation on NetBSD - MINOR: memprof: add one pointer size to the size of allocations - MINOR: memprof: report the delta between alloc and free on realloc() - BUG/MEDIUM: lua: fix memory leaks with realloc() on non-glibc systems - BUG/MINOR: mux-h2: do not prevent from sending a final GOAWAY frame - BUG/MINOR: task: do not set TASK_F_USR1 for no reason - BUG/MAJOR: buf: fix varint API post- vs pre- increment - BUG/MEDIUM: resolvers: always check a valid item in query_list - BUILD: resolvers: avoid a possible warning on null-deref - BUG/MAJOR: resolvers: add other missing references during resolution removal - MINOR: resolvers: merge address and target into a union "data" - BUG/MEDIUM: resolvers: use correct storage for the target address - BUG/MEDIUM: resolvers: fix truncated TLD consecutive to the API fix - MINOR: resolvers: fix the resolv_dn_label_to_str() API about trailing zero - BUG/MINOR: resolvers: do not reject host names of length 255 in SRV records - BUG/MEDIUM: resolver: make sure to always use the correct hostname length - MINOR: resolvers: fix the resolv_str_to_dn_label() API about trailing zero - BUG/MAJOR: dns: attempt to lock globaly for msg waiter list instead of use barrier - BUG/MAJOR: dns: tcp session can remain attached to a list after a free - BUG/MEDIUM: tcpcheck: Properly catch early HTTP parsing errors 2021/11/24 : 2.4r1 (1.0.0-268.373) - BUG/MINOR: lua: don't expose internal proxies - BUG/MINOR: httpclient: allow to replace the host header - DOC: lua: documentation about the httpclient API - REGTESTS: httpclient/lua: add greater body values - BUG/MEDIUM: httpclient/cli: free of unallocated hc->req.uri - BUG/MEDIUM: httpclient: channel_add_input() must use htx->data - BUG/MINOR: httpclient/lua: rcv freeze when no request payload - BUG/MINOR: httpclient: use a placeholder value for Host header - BUG/MINOR: httpclient/lua: misplaced luaL_buffinit() - REGTESTS: lua: test httpclient with body streaming - MINOR: httpclient/lua: handle the streaming into the lua applet - MINOR: httpclient: request streaming with a callback - MINOR: httpclient/lua: return an error when it can't generate the request - MINOR: httpclient/lua: support more HTTP methods - MINOR: httpclient: support payload within a buffer - DOC: management: doc about the CLI httpclient - MINOR: httpclient/cli: access should be only done from expert mode 2021/11/08 : 2.4r1 (1.0.0-268.356) 2021/10/20 : 2.4r1 (1.0.0-264.356) - Revert "CLEANUP: server: always include the storage for SSL settings" - BUG/MEDIUM: sample: properly verify that variables cast to sample - MINOR: sample: provide a generic var-to-sample conversion function - CLEANUP: sample: uninline sample_conv_var2smp_str() - CLEANUP: sample: rename sample_conv_var2smp() to *_sint - CLEANUP: server: always include the storage for SSL settings - BUG/MEDIUM: stream: Keep FLT_END analyzers if a stream detects a channel error - BUG/MEDIUM: cpuset: fix cpuset size for FreeBSD - BUG/MINOR: sample: Fix 'fix_tag_value' sample when waiting for more data - BUG/MINOR: http-ana: Don't eval front after-response rules if stopped on back - MINOR: initcall: Rename __GLOBL and __GLOBL1. - DOC: configuration: add clarification on escaping in keyword arguments - BUG/MEDIUM: mux_h2: Handle others remaining read0 cases on partial frames 2021/10/14 : 2.4r1 (1.0.0-263.343) - BUILD: hapee/modules: select either md5 or md5sum 2021/10/08 : 2.4r1 (1.0.0-259.342) - MINOR: hapee: update backported and hapee patches - BUG/MEDIUM: http-ana: Clear request analyzers when applying redirect rule - BUG/MEDIUM: filters: Fix a typo when a filter is attached blocking the release - MINOR: tasks: catch TICK_ETERNITY with BUG_ON() in __task_queue() - BUG/MINOR: tcp-rules: Stop content rules eval on read error and end-of-input - BUG/MINOR: tcpcheck: Don't use arg list for default proxies during parsing - MINOR: arg: Be able to forbid unresolved args when building an argument list - BUG/MAJOR: lua: use task_wakeup() to properly run a task once - BUG/MEDIUM: lua: fix wakeup condition from sleep() - MINOR: Makefile: add MEMORY_POOLS to the list of DEBUG_xxx options - DOC: peers: fix doc "enable" statement on "peers" sections - BUG/MINOR: mux-h1/mux-fcgi: Sanitize TE header to only send "trailers" - MINOR: stream-int: Notify mux when the buffer is not stuck when calling rcv_buf - BUG/MEDIUM: stream-int: Defrag HTX message in si_cs_recv() if necessary - MINOR: htx: Add a function to know if the free space wraps - MINOR: htx: Add an HTX flag to know when a message is fragmented - MINOR: stream-int: Set CO_RFL transient/persistent flags apart in si_cs_rcv() - BUG/MEDIUM: stream: Stop waiting for more data if SI is blocked on RXBLK_ROOM - BUG/MEDIUM: stream-int: Notify stream that the mux wants more room to xfer data - BUG/MEDIUM: mux-h1: Adjust conditions to ask more space in the channel buffer - BUG/MINOR: stats: use refcount to protect dynamic server on dump - MINOR: server: return the next srv instance on free_server - BUG/MINOR: server: do not use refcount in free_server in stopping mode - MINOR: global: define MODE_STOPPING - MINOR: server: implement a refcount for dynamic servers - BUG/MINOR: http-ana: increment internal_errors counter on response error - BUG/MINOR: h1-htx: Fix a typo when request parser is reset - BUG/MEDIUM: leastconn: fix rare possibility of divide by zero - BUG/MINOR: server: allow 'enable health' only if check configured - BUILD: threads: fix -Wundef for _POSIX_PRIORITY_SCHEDULING on libmusl - BUILD: halog: fix a -Wundef warning on non-glibc systems - BUILD: compiler: fixed a missing test on defined(__GNUC__) - BUILD: fix dragonfly build again on __read_mostly - BUILD: tools: properly guard __GLIBC__ with defined() - BUILD: ssl: fix two remaining occurrences of #if USE_OPENSSL - BUILD: ssl: next round of build warnings on LIBRESSL_VERSION_NUMBER - BUILD/MINOR: regex: avoid a build warning on USE_PCRE2 with -Wundef - IMPORT: slz: silence a build warning with -Wundef - BUILD/MINOR: ssl: avoid a build warning on LIBRESSL_VERSION with -Wundef - BUILD/MINOR: defaults: eliminate warning on MAXHOSTNAMELEN with -Wundef - BUILD: activity: use #ifdef not #if on USE_MEMORY_PROFILING - MINOR: proc: setting the process to produce a core dump on FreeBSD. - MINOR: tools: add FreeBSD support to get_exec_path() - BUILD: tools: get the absolute path of the current binary on NetBSD. - BUG/MINOR: flt-trace: fix an infinite loop when random-parsing is set - BUG/MINOR: cli/payload: do not search for args inside payload - BUILD: ist: prevent gcc11 maybe-uninitialized warning on istalloc - BUG/MINOR: connection: prevent null deref on mux cleanup task allocation - DOC: management: certificate files must be sanitized before injection - BUG/MINOR: tcpcheck: Improve LDAP response parsing to fix LDAP check - BUG/MAJOR: mux-h1: Don't eval input data if an error was reported - BUILD: httpclient: include missing ssl_sock-t - MINOR: httpclient/lua: supports headers via named arguments - BUG/MINOR: httpclient/lua: does not process headers when failed - MINOR: httpclient: destroy checks if a client was started but not stopped - BUG/MEDIUM: httpclient/lua: crash because of b_xfer and get_trash_chunk() - MINOR: buf: Add b_force_xfer() function - MINOR: httpclient/lua: implement garbage collection - MINOR: httpclient: test if started during stop_and_destroy() - MINOR: httpclient: stop_and_destroy() ask the applet to autokill - MINOR: httpclient: set HTTPCLIENT_F_ENDED only in release - MINOR: httpclient: destroy() must free the headers and the ists - BUG/MEDIUM: httpclient: replace ist0 by istptr - REGTESTS: lua: test the httpclient:get() feature - BUG/MINOR: httpclient/lua: return an error on argument check - MINOR: httpclient/lua: implement the headers in the response object - MINOR: httpclient/lua: httpclient:get() API in lua - MINOR: httpclient: httpclient_ended() returns 1 if the client ended - MINOR: httpclient: httpclient_data() returns the available data - MINOR: httpclient: add the EOH when no headers where provided - BUILD: httpclient: fix build without OpenSSL 2021/10/04 : 2.4r1 (1.0.0-254.271) 2021/10/01 : 2.4r1 (1.0.0-253.271) - HAPEE: update backports and notes - REGTESTS: re-enable the "ssl_default_server" regtest on 2.4 - REGTESTS: re-enable the "vars" regtest on 2.4 - MINOR: http-rules: add a new "ignore-empty" option to redirects. - CLEANUP: vars: name the temporary proxy "CFG" instead of "CLI" for global vars - MINOR: log: make log-format expressions completely usable outside of req/resp - MINOR: vars: make the vars() sample fetch function support a default value - BUILD: ot: add argument for default value to vars_get_by_name() - MINOR: vars: make vars_get_by_* support an optional default value - CLEANUP: vars: factor out common code from vars_get_by_{desc,name} - MEDIUM: vars: also support format strings in CLI's "set var" command - MINOR: vars: add a "set-var-fmt" directive to the global section - BUG/MINOR: vars: do not talk about global section in CLI errors for set-var - BUG/MINOR: vars: truncate the variable name in error reports about scope. - BUG/MEDIUM: vars: run over the correct list in release_store_rules() - MEDIUM: vars: add a new "set-var-fmt" action - BUG/MINOR: vars: properly set the argument parsing context in the expression - BUG/MINOR: vars: improve accuracy of the rules used to check expression validity - MINOR: sample: add missing ARGC_ entries - BUILD/MEDIUM: tcp: set-mark setting support for FreeBSD. - CLEANUP: tcp-act: Sort action lists - BUILD: tcp-act: avoid warning when set-mark / set-tos are not supported - MINOR: http-act/tcp-act: Add "set-mark" and "set-tos" for tcp content rules - MINOR: http-act/tcp-act: Add "set-nice" for tcp content rules - MINOR: http-act/tcp-act: Add "set-log-level" for tcp content rules - MINOR: tcp-act: Add set-src/set-src-port for "tcp-request content" rules - BUG/MEDIUM: cfgparse: do not allocate IDs to automatic internal proxies - BUG/MINOR: proxy: don't dump servers of internal proxies - MINOR: pools: use mallinfo2() when available instead of mallinfo() - MINOR: pools: automatically disable malloc_trim() with external allocators - CLEANUP: pools: factor all malloc_trim() calls into trim_all_pools() - BUG/MINOR: compat: make sure __WORDSIZE is always defined - BUG/MEDIUM: stream-int: Don't block SI on a channel policy if EOI is reached - CLEANUP: mux-h1: Remove condition rejecting upgrade requests with payload - MINOR: htx: Skip headers with no value when adding a header list to a message - BUG/MEDIUM: mux-h1: Remove "Upgrade:" header for requests with payload - BUG/MINOR: systemd: ExecStartPre must use -Ws - BUG/MINOR: filters: Set right FLT_END analyser depending on channel - BUG/MINOR: filters: Always set FLT_END analyser when CF_FLT_ANALYZE flag is set - BUG/MEDIUM: http-ana: Reset channels analysers when returning an error - BUG/MINOR: stream: Don't release a stream if FLT_END is still registered - BUG/MINOR: lua: Don't yield in channel.append() and channel.set() - BUG/MINOR: lua: Yield in channel functions only if lua context can yield - MINOR: lua: Add a flag on lua context to know the yield capability at run time - Revert "BUG/MINOR: stream-int: Don't block reads in si_update_rx() if chn may receive" - BUG/MAJOR: htx: fix missing header name length check in htx_add_header/trailer - CLEANUP: htx: remove comments about "must be < 256 MB" - BUG/MINOR: config: reject configs using HTTP with bufsize >= 256 MB - DOC: configuration: remove wrong tcp-request examples in tcp-response - BUG/MINOR: vars: fix set-var/unset-var exclusivity in the keyword parser - CLEANUP: Add missing include guard to signal.h - BUG/MINOR: tools: Fix loop condition in dump_text() - BUG/MINOR threads: Use get_(local|gm)time instead of (local|gm)time - BUG/MINOR: ebtree: remove dependency on incorrect macro for bits per long - MINOR: time: add report_idle() to report process-wide idle time - BUG/MINOR: time: fix idle time computation for long sleeps - BUG/MINOR: lua: use strlcpy2() not strncpy() to copy sample keywords - MINOR: compiler: implement an ONLY_ONCE() macro - BUG/MINOR: base64: base64urldec() ignores padding in output size check - BUG/MEDIUM: base64: check output boundaries within base64{dec,urldec} - BUG/MINOR: stick-table: fix the sc-set-gpt* parser when using expressions - MINOR: hlua: take the global Lua lock inside a global function - REGTESTS: abortonclose: after retries, 503 is expected, not close - REGTESTS: http_upgrade: fix incorrect expectation on TCP->H1->H2 - BUG/MINOR: httpclient: fix Host header - MINOR: httpclient: add the server to the proxy - MINOR: httpclient: set verify none on the https server - BUG/MINOR: httpclient: remove deinit of the httpclient - MINOR: proxy: disable warnings for internal proxies - MINOR: cli: delare the CLI frontend as an internal proxy - MINOR: proxy: check if p is NULL in free_proxy() - MINOR: httpclient/cli: change the User-Agent to "HAProxy" - MINOR: httpclient: cleanup the include files - BUG/MINOR: httpclient: check if hdr_num is not 0 - BUG/MINOR: httpclient/cli: change the appctx test in the callbacks - MINOR: httpclient/cli: implement a simple client over the CLI - BUG/MINOR: httpclient: fix uninitialized sl variable - BUG/MINOR: http_client: make sure to preset the proxy's default settings - MINOR: channel: remove an htx block from a channel - MINOR: httpclient: implement a simple HTTP Client API - MINOR: httpclient: initialize the proxy - MINOR: stats: shows proxy in a stopped state - MINOR: proxy: disabled takes a stopping and a disabled state - MINOR: stats: don't output internal proxies (PR_CAP_INT) - MINOR: mworker: the mworker CLI proxy is internal - MINOR: proxy: rename PR_CAP_LUA to PR_CAP_INT - MEDIUM: stats: include disabled proxies that hold active sessions to stats - BUG/MEDIUM: h2: match absolute-path not path-absolute for :path - REGTESTS: add a test to prevent h2 desync attacks - BUG/MEDIUM: h2: give :authority precedence over Host - BUG/MAJOR: h2: enforce stricter syntax checks on the :method pseudo-header - BUG/MAJOR: h2: verify that :path starts with a '/' before concatenating it - BUG/MAJOR: h2: verify early that non-http/https schemes match the valid syntax - MINOR: http: add a new function http_validate_scheme() to validate a scheme - DOC/MINOR: fix typo in management document - CLEANUP: assorted typo fixes in the code and comments - BUG/MEDIUM: cfgcheck: verify existing log-forward listeners during config check - BUG/MEDIUM: spoe: Fix policy to close applets when SPOE connections are queued - DOC: config: Fix 'http-response send-spoe-group' documentation - DOC: Improve the lua documentation - BUG/MINOR: tcpcheck: Properly detect pending HTTP data in output buffer - BUG/MINOR: buffer: fix buffer_dump() formatting - BUG/MEDIUM: spoe: Create a SPOE applet if necessary when the last one is released - MINOR: spoe: Add a pointer on the filter config in the spoe_agent structure - ADMIN: dyncookie: implement a simple dynamic cookie calculator - MINOR: server: unmark deprecated on enable health/agent cli - BUG/MINOR: server: update last_change on maint->ready transitions too - BUG/MINOR: server: remove srv from px list on CLI 'add server' error - BUILD: opentracing: fixed build when using pkg-config utility - DOC: internals: document the FD takeover process - BUG/MINOR: fd: protect fd state harder against a concurrent takeover - BUG/MINOR: pollers: always program an update for migrated FDs - BUG/MINOR: poll: fix abnormally high skip_fd counter - BUG/MINOR: select: fix excess number of dead/skip reported - BUG/MEDIUM: pollers: clear the sleeping bit after waking up, not before - BUG/MEDIUM: connection: close a rare race between idle conn close and takeover - BUG/MINOR: connection: Add missing error labels to conn_err_code_str - BUG/MEDIUM: mux-h2: Handle remaining read0 cases on partial frames - BUG/MINOR: mux-h1: Be sure to swap H1C to splice mode when rcv_pipe() is called - BUG/MINOR: mux-h2: Obey dontlognull option during the preface - BUG/MINOR: mux-h1: Obey dontlognull option for empty requests - BUG/MINOR: systemd: must check the configuration using -Ws - BUG/MINOR: resolvers: Use a null-terminated string to lookup in servers tree - BUG/MINOR: check: fix the condition to validate a port-less server - BUG/MINOR: stats: Add missing agent stats on servers - BUG/MEDIUM: ssl_sample: fix segfault for srv samples on invalid request - BUILD/MINOR: memprof fix macOs build. - BUG/MINOR: mworker: do not export HAPROXY_MWORKER_REEXEC across programs - BUG/MEDIUM: mworker: do not register an exit handler if exit is expected - BUILD: lua: silence a build warning with TCC - BUILD: add detection of missing important CFLAGS - BUG/MINOR: ssl: Default-server configuration ignored by server - MINOR: mux_h2: define config to disable h2 websocket support - BUILD: http_htx: fix ci compilation error with isdigit for Windows - REGTESTS: add http scheme-based normalization test - MEDIUM: h2: apply scheme-based normalization on h2 requests - MEDIUM: h1-htx: apply scheme-based normalization on h1 requests - MEDIUM: http: implement scheme-based normalization - MINOR: http: implement http_get_scheme - Revert "MINOR: tcp-act: Add set-src/set-src-port for "tcp-request content" rules" - BUG/MINOR: cli: fix server name output in "show fd" - BUG/MEDIUM: sock: make sure to never miss early connection failures - DOC: stick-table: add missing documentation about gpt0 stored type - BUG/MINOR: peers: fix data_type bit computation more than 32 data_types - BUG/MINOR: stick-table: fix several printf sign errors dumping tables - DOC: config: use CREATE USER for mysql-check - BUG/MEDIUM: resolvers: Make 1st server of a template take part to SRV resolution - BUG/MINOR: mqtt: Support empty client ID in CONNECT message - BUG/MINOR: mqtt: Fix parser for string with more than 127 characters - BUG/MINOR: tcpcheck: Fix numbering of implicit HTTP send/expect rules - BUILD: Makefile: fix linkage for Haiku. - BUG/MINOR: checks: return correct error code for srv_parse_agent_check - MINOR: resolvers: Reset server IP on error in resolv_get_ip_from_response() - BUG/MINOR: resolvers: Reset server IP when no ip is found in the response - BUG/MINOR: resolvers: Always attach server on matching record on resolution - CLEANUP: dns: Remove a forgotten debug message - DOC: config: Add missing actions in "tcp-request session" documentation - MINOR: tcp-act: Add set-src/set-src-port for "tcp-request content" rules - REGTESTS: fix maxconn update with agent-check - BUG/MAJOR: server: fix deadlock when changing maxconn via agent-check - BUG/MINOR: cache: Correctly handle existing-but-empty 'accept-encoding' header - BUG/MINOR: server/cli: Fix locking in function processing "set server" command - BUG/MINOR: resolvers: Use resolver's lock in resolv_srvrq_expire_task() - BUG/MEDIUM: resolvers: Add a task on servers to check SRV resolution status - MINOR: resolvers: Remove server from named_servers tree when removing a SRV item - MINOR: resolvers: Clean server in a dedicated function when removing a SRV item - BUG/MEDIUM: server/cli: Fix ABBA deadlock when fqdn is set from the CLI - BUG/MINOR: server: Forbid to set fqdn on the CLI if SRV resolution is enabled - BUG/MINOR: server-state: load SRV resolution only if params match the config - BUG/MINOR: mux-h2/traces: bring back the lost "sent H2 REQ/RES" traces - BUG/MINOR: mux-h2/traces: bring back the lost "rcvd H2 REQ" trace - MINOR: mux-h2: obey http-ignore-probes during the preface - BUG/MINOR: stats: make "show stat typed desc" work again - CLEANUP: mux-h2/traces: better align user messages - MINOR: mux-h2/trace: report a few connection-level info during h2_init() - MINOR: connection: add helper conn_append_debug_info() - MINOR: hapee: add a .hapee directory to list backporting notes - BUG/MINOR: server: explicitly set "none" init-addr for dynamic servers - BUG/MINOR: mux-h1: do not skip the error response on bad requests - MINOR: backend: only skip LB when there are actual connections - BUG/MAJOR: queue: set SF_ASSIGNED when setting strm->target on dequeue - CLEANUP: global: remove unused definition of stopping_task[] - BUG/MINOR: mworker: fix typo in chroot error message - BUG/MINOR: ssl: use atomic ops to update global shctx stats - BUG/MEDIUM: shctx: use at least thread-based locking on USE_PRIVATE_CACHE - BUG/MEDIUM: server: do not auto insert a dynamic server in px addr_node - BUG/MINOR: server: do not keep an invalid dynamic server in px ids tree - BUG/MEDIUM: server: do not forget to generate the dynamic servers ids - BUG/MEDIUM: server: clear dynamic srv on delete from proxy id/name trees - BUG/MEDIUM: server: extend thread-isolate over much of CLI 'add server' - BUG/MINOR: stick-table: insert srv in used_name tree even with fixed id - DOC: lua: Add a warning about buffers modification in HTTP - BUG/MAJOR: resolvers: segfault using server template without SRV RECORDs - MEDIUM: resolvers: add a ref between servers and srv request or used SRV record - MEDIUM: resolvers: add a ref on server to the used A/AAAA answer item - BUG/MINOR: resolvers: answser item list was randomly purged or errors - CLEANUP: l7-retries: do not test the buffer before calling b_alloc() - BUG/MINOR: mux-fcgi: Expose SERVER_SOFTWARE parameter by default - BUG/MAJOR: htx: Fix htx_defrag() when an HTX block is expanded - CLEANUP: pools: remove now unused seq and pool_free_list - BUG/MAJOR: pools: fix possible race with free() in the lockless variant - MEDIUM: pools: use a single pool_gc() function for locked and lockless - MINOR: pools: call malloc_trim() under thread isolation - MINOR: pools: do not maintain the lock during pool_flush() - BUG/MINOR: pools: make DEBUG_UAF always write to the to-be-freed location - BUG/MINOR: pools: fix a possible memory leak in the lockless pool_flush() - BUG/MEDIUM: compression: Add a flag to know the filter is still processing data - BUG/MEDIUM: compression: Properly get the next block to iterate on payload - BUG/MEDIUM: compression: Fix loop skipping unused blocks to get the next block - BUG/MEDIUM: opentracing: initialization before establishing daemon and/or chroot mode - Revert "BUG/MINOR: opentracing: initialization after establishing daemon mode" - BUG/MINOR: ssl: OCSP stapling does not work if expire too far in the future - BUILD: make tune.ssl.keylog available again - DOC: use the req.ssl_sni in examples - MINOR: errors: allow empty va_args for diag variadic macro - BUG/MAJOR: stream-int: Release SI endpoint on server side ASAP on retry - DOC/MINOR: move uuid in the configuration to the right alphabetical order - BUG/MINOR: vars: Be sure to have a session to get checks variables - CLEANUP: http-ana: Remove useless if statement about L7 retries - BUG/MINOR: proxy: Missing calloc return value check in chash_init_server_tree - BUG/MINOR: http: Missing calloc return value check in make_arg_list - BUG/MINOR: http: Missing calloc return value check while parsing redirect rule - BUG/MINOR: worker: Missing calloc return value check in mworker_env_to_proc_list - BUG/MINOR: compression: Missing calloc return value check in comp_append_type/algo - BUG/MINOR: http: Missing calloc return value check while parsing tcp-request rule - BUG/MINOR: http: Missing calloc return value check while parsing tcp-request/tcp-response - BUG/MINOR: proxy: Missing calloc return value check in proxy_defproxy_cpy - BUG/MINOR: proxy: Missing calloc return value check in proxy_parse_declare - BUG/MINOR: http: Missing calloc return value check in parse_http_req_capture - BUG/MINOR: ssl: Missing calloc return value check in ssl_init_single_engine - BUG/MINOR: peers: Missing calloc return value check in peers_register_table - BUG/MINOR: server: Missing calloc return value check in srv_parse_source - DOC: intro: Fix typo in starter guide - MINOR: cfgparse: Fail when encountering extra arguments in macro - MINOR: http-ana: Perform L7 retries because of status codes in response analyser - BUG/MINOR: http-ana: Handle L7 retries on refused early data before K/A aborts - BUG/MINOR: http-ana: Send the right error if max retries is reached on L7 retry - Revert "MEDIUM: http-ana: Deal with L7 retries in HTTP analysers" - BUG/MINOR: http-comp: Preserve HTTP_MSGF_COMPRESSIONG flag on the response - BUG/MEDIUM: filters: Exec pre/post analysers only one time per filter - BUILD/MINOR: opentracing: fixed build when using clang - BUG/MAJOR: server: prevent deadlock when using 'set maxconn server' - BUG/MEDIUM: ebtree: Invalid read when looking for dup entry - MINOR: hapee/WURFL: transfer error status from the _wurfl_reload() function - MINOR: hapee/WURFL: added live update database function - MINOR: hapee/WURFL: added custom API log function - MINOR: hapee/WURFL: added function to check correct module initialization - BUG/MINOR: hapee/WURFL: corrected version check of used wurfl library - BUILD: hapee/da: repaired build in case of using old DeviceAtlas library - MINOR: hapee/da: add function that allow data reload - MINOR: hapee/da: add spin locking - MINOR: hapee/da: add support for loading a precompiled json data - MINOR: hapee/51d: add function that allow data reload - BUG/MINOR: hapee/51d: add spin locking - BUILD: hapee/51d: fix error when building with 51Degrees enabled - BUG/MEDIUM: hapee/51d: fix a segfault on exit when 51d configuration is not loaded - MEDIUM: hapee/51d: use fiftyoneDegreesProvider to access the pool and dataset - MEDIUM: hapee/modules: load the STG_REGISTER initcalls - BUILD: hapee/modules: clean(up) the copts-hash file not copts_hash - BUG/MINOR: hapee/modules: display detailed error message on mod_init() failure - MINOR: hapee/modules: add a new label MODULES_LOCK to the lock_label enum - MINOR: hapee/modules: add the ability to register variable and functions. - MEDIUM: hapee/modules: 'modules list' on the cli shows currently loaded modules - MINOR: hapee/modules: terminate properly loaded modules if possible - MINOR: hapee/modules: register function called after the main config check - MEDIUM: hapee/modules: add memory reservation support for the modules - MINOR: hapee: change URLs and EOL date for 2.4r1 - BUILD: hapee/modules: update HAPEE version macro to 2.4r1 - BUILD: hapee/modules: add macros to compute numerical value of a HAPEE version - BUILD: hapee/modules: add version of the module in the defines - MEDIUM: hapee/modules: add modules support

HAPEE-LB 2.4r1 – Changelog
English French German