[RELEASE] Released version 2.4-dev3

Released version 2.4-dev3 with the following main changes :
    - MINOR: log: Logging HTTP path only with %HPO
    - BUG/MINOR: mux-h2/stats: make stream/connection proto errors more accurate
    - MINOR: traces: add a new level "error" below the "user" level
    - MINOR: mux-h2/trace: add traces at level ERROR for protocol errors
    - BUG/MINOR: mux-h2/stats: not all GOAWAY frames are errors
    - BUG/MINOR: lua: missing "\n" in error message
    - BUG/MINOR: lua: lua-load doesn't check its parameters
    - BUG/MINOR: lua: Post init register function are not executed beyond the first one
    - BUG/MINOR: lua: Some lua init operation are processed unsafe
    - MINOR: actions: Export actions lookup functions
    - MINOR: actions: add a function returning a service pointer from its name
    - MINOR: cli: add a function to look up a CLI service description
    - BUG/MINOR: lua: warn when registering action, conv, sf, cli or applet multiple times
    - MINOR: cache: Improve accept_encoding_normalizer
    - MINOR: cache: Add entry to the tree as soon as possible
    - BUG/MINOR: trace: Wrong displayed trace level
    - BUG/MAJOR: ring: tcp forward on ring can break the reader counter.
    - MINOR: lua: simplify hlua_alloc() to only rely on realloc()
    - MEDIUM: lua-thread: use atomics for memory accounting
    - MINOR: lua-thread: remove struct hlua from function hlua_prepend_path()
    - MEDIUM: lua-thread: make hlua_post_init() no longer use the runtime execution function
    - MINOR: lua-thread: hlua_ctx_renew() is never called with main gL lua state
    - MINOR: lua-thread: Use NULL context for main lua state
    - MINOR: lua-thread: Stop usage of struct hlua for the global lua state
    - MINOR: lua-thread: Replace embedded struct hlua_function by a pointer
    - MINOR: lua-thread: Split hlua_init() function in two parts
    - MINOR: lua-thread: make hlua_ctx_init() get L from its caller
    - MINOR: lua-thread: Split hlua_load function in two parts
    - MINOR: lua-thread: Split hlua_post_init() function in two parts
    - MINOR: lua-thread: Add the "thread" core variable
    - MEDIUM: lua-thread: No longer use locked context in initialization parts
    - MEDIUM: lua-thread: Apply lock only if the parent state is the main thread
    - MINOR: lua-thread: Replace global gL var with an array of states
    - MINOR: lua-thread: Replace "struct hlua_function" allocation by dedicated function
    - MINOR: lua-thread: Replace state_from by state_id
    - MINOR: lua-thread: Store each function reference and init reference in array
    - MEDIUM: lua-thread: Add the lua-load-per-thread directive
    - MINOR: lua-thread: Add verbosity in errors
    - REGTESTS: add a test for the threaded Lua code
    - BUILD/MINOR: haproxy DragonFlyBSD affinity build update.
    - DOC/MINOR: Fix formatting in Management Guide
    - MINOR: cache: Do not store stale entry
    - MINOR: cache: Add extra "cache-control" value checks
    - MEDIUM: cache: Remove cache entry in case of POST on the same resource
    - MINOR: cache: Consider invalid Age values as stale
    - BUG/MEDIUM: lua-thread: some parts must be initialized once
    - BUG/MINOR: lua-thread: close all states on deinit
    - BUG/MINOR: listener: use sockaddr_in6 for IPv6
    - BUG/MINOR: mux-h1: Handle keep-alive timeout for idle frontend connections
    - MINOR: session: Add the idle duration field into the session
    - MINOR: mux-h1: Update session idle duration when data are received
    - MINOR: mux-h1: Reset session dates and durations info when the CS is detached
    - MINOR: logs: Use session idle duration when no stream is provided
    - MINOR: stream: Always get idle duration from the session
    - MINOR: stream: Don't retrieve anymore timing info from the mux csinfo
    - MINOR: mux-h1: Don't provide anymore timing info using cs_info structure
    - MINOR: muxes: Remove get_cs_info callback function now useless
    - MINOR: stream: Pass an optional input buffer when a stream is created
    - MINOR: mux-h1: Add a flag to disable reads to wait opposite side
    - MEDIUM: mux-h1: Use a h1c flag to block reads when splicing is in-progress
    - MINOR: mux-h1: Introduce H1C_F_IS_BACK flag on the H1 connection
    - MINOR: mux-h1: Separate parsing and formatting errors at H1 stream level
    - MINOR: mux-h1: Split front/back h1 stream creation in 2 functions
    - MINOR: mux-h1: Add a rxbuf into the H1 stream
    - MINOR: mux-h1: Don't set CS flags in internal parsing functions
    - MINOR: mux-h1: Add embryonic and attached states on the H1 connection
    - MINOR: mux-h1: rework the h1_timeout_task() function
    - MINOR: mux-h1: Reset more H1C flags when a H1 stream is destroyed
    - MINOR: mux-h1: Disable reads if an error was reported on the H1 stream
    - MINOR: mux-h1: Rework how shutdowns are handled
    - MINOR: mux-h1: Rework h1_refresh_timeout to be easier to read
    - MINOR: mux-h1: Process next request for IDLE connection only
    - MINOR: mux-h1: Add a idle expiration date on the H1 connection
    - MINOR: stick-tables: Add functions to update some values of a tracked counter
    - MINOR: session: Add functions to increase http values of tracked counters
    - MINOR: mux: Add a ctl parameter to get the exit status of the multiplexers
    - MINOR: logs: Get the multiplexer exist status when no stream is provided
    - MINOR: mux-h1: Add functions to send HTTP errors from the mux
    - MAJOR: mux-h1: Create the client stream as later as possible
    - DOC: config: Add notes about errors emitted by H1 mux
    - CLEANUP: mux-h1: Rename H1C_F_CS_* flags and reorder H1C flags
    - MINOR: http-ana: Remove useless update of t_idle duration of the stream
    - CLEANUP: htx: Remove HTX_FL_UPGRADE unsued flag
    - MEDIUM: http-ana: Don't process partial or empty request anymore
    - CLEANUP: http-ana: Remove TX_WAIT_NEXT_RQ unsued flag
    - CLEANUP: connection: Remove CS_FL_READ_PARTIAL flag
    - REGTESTS: Fix proxy_protocol_tlv_validation
    - MINOR: http-ana: Properly set message flags from the start-line flags
    - MINOR: h1-htx/http-ana: Set BODYLESS flag on message in TUNNEL state
    - MINOR: protocol: add a ->set_port() helper to address families
    - MINOR: listener: automatically set the port when creating listeners
    - MINOR: listener: now use a generic add_listener() function
    - MEDIUM: ssl: fatal error with bundle + openssl < 1.1.1
    - BUG/MEDIUM: stream: Xfer the input buffer to a fully created stream
    - BUG/MINOR: stream: Don't use input buffer after the ownership xfer
    - MINOR: protocol: remove the redundant ->sock_domain field
    - MINOR: protocol: export protocol definitions
    - CLEANUP: protocol: group protocol struct members by usage
    - MINOR: protocol: add a set of ctrl_init/ctrl_close methods for setup/teardown
    - MINOR: connection: use the control layer's init/close
    - MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver()
    - BUG/MAJOR: spoa/python: Fixing return None
    - DOC: spoa/python: Fixing typo in IP related error messages
    - DOC: spoa/python: Rephrasing memory related error messages
    - DOC: spoa/python: Fixing typos in comments
    - BUG/MINOR: spoa/python: Cleanup references for failed Module Addobject operations
    - BUG/MINOR: spoa/python: Cleanup ipaddress objects if initialization fails
    - BUG/MEDIUM: spoa/python: Fixing PyObject_Call positional arguments
    - BUG/MEDIUM: spoa/python: Fixing references to None
    - DOC: email change of the DeviceAtlas maintainer
    - MINOR: cache: Dump secondary entries in "show cache"
    - CLEANUP: connection: use fd_stop_both() instead of conn_stop_polling()
    - MINOR: stream-int: don't touch polling anymore on shutdown
    - MINOR: connection: implement cs_drain_and_close()
    - MINOR: mux-pt: take care of CS_SHR_DRAIN in shutr()
    - MINOR: checks: use cs_drain_and_close() instead of draining the connection
    - MINOR: checks: don't call conn_cond_update_polling() anymore
    - CLEANUP: connection: open-code conn_cond_update_polling() and update the comment
    - CLEANUP: connection: remove the unused conn_{stop,cond_update}_polling()
    - BUG/MINOR: http-check: Use right condition to consider HTX message as full
    - BUG/MINOR: tcpcheck: Don't rearm the check timeout on each read
    - MINOR: tcpcheck: Only wait for more payload data on HTTP expect rules
    - BUG/MINOR: tools: make parse_time_err() more strict on the timer validity
    - BUG/MINOR: tools: Reject size format not starting by a digit
    - MINOR: action: define enum for timeout type of the set-timeout rule
    - MINOR: stream: prepare the hot refresh of timeouts
    - MEDIUM: stream: support a dynamic server timeout
    - MEDIUM: stream: support a dynamic tunnel timeout
    - MEDIUM: http_act: define set-timeout server/tunnel action
    - MINOR: frontend: add client timeout sample fetch
    - MINOR: backend: add timeout sample fetches
    - MINOR: stream: add sample fetches
    - MINOR: stream: add timeout sample fetches
    - REGTESTS: add regtest for http-request set-timeout
    - CLEANUP: remove the unused fd_stop_send() in conn_xprt_shutw{,_hard}()
    - CLEANUP: connection: remove the unneeded fd_stop_{recv,send} on read0/shutw
    - MINOR: connection: remove sock-specific code from conn_sock_send()
    - REORG: connection: move the socket iocb (conn_fd_handler) to sock.c
    - MINOR: protocol: add a ->drain() function at the connection control layer
    - MINOR: connection: make conn_sock_drain() use the control layer's ->drain()
    - MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer
    - MEDIUM: connection: make use of the control layer check_events/ignore_events
diff --git a/CHANGELOG b/CHANGELOG
index 2a7e45d..831be7e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,150 @@
 ChangeLog :
 ===========
 
+2020/12/11 : 2.4-dev3
+    - MINOR: log: Logging HTTP path only with %HPO
+    - BUG/MINOR: mux-h2/stats: make stream/connection proto errors more accurate
+    - MINOR: traces: add a new level "error" below the "user" level
+    - MINOR: mux-h2/trace: add traces at level ERROR for protocol errors
+    - BUG/MINOR: mux-h2/stats: not all GOAWAY frames are errors
+    - BUG/MINOR: lua: missing "\n" in error message
+    - BUG/MINOR: lua: lua-load doesn't check its parameters
+    - BUG/MINOR: lua: Post init register function are not executed beyond the first one
+    - BUG/MINOR: lua: Some lua init operation are processed unsafe
+    - MINOR: actions: Export actions lookup functions
+    - MINOR: actions: add a function returning a service pointer from its name
+    - MINOR: cli: add a function to look up a CLI service description
+    - BUG/MINOR: lua: warn when registering action, conv, sf, cli or applet multiple times
+    - MINOR: cache: Improve accept_encoding_normalizer
+    - MINOR: cache: Add entry to the tree as soon as possible
+    - BUG/MINOR: trace: Wrong displayed trace level
+    - BUG/MAJOR: ring: tcp forward on ring can break the reader counter.
+    - MINOR: lua: simplify hlua_alloc() to only rely on realloc()
+    - MEDIUM: lua-thread: use atomics for memory accounting
+    - MINOR: lua-thread: remove struct hlua from function hlua_prepend_path()
+    - MEDIUM: lua-thread: make hlua_post_init() no longer use the runtime execution function
+    - MINOR: lua-thread: hlua_ctx_renew() is never called with main gL lua state
+    - MINOR: lua-thread: Use NULL context for main lua state
+    - MINOR: lua-thread: Stop usage of struct hlua for the global lua state
+    - MINOR: lua-thread: Replace embedded struct hlua_function by a pointer
+    - MINOR: lua-thread: Split hlua_init() function in two parts
+    - MINOR: lua-thread: make hlua_ctx_init() get L from its caller
+    - MINOR: lua-thread: Split hlua_load function in two parts
+    - MINOR: lua-thread: Split hlua_post_init() function in two parts
+    - MINOR: lua-thread: Add the "thread" core variable
+    - MEDIUM: lua-thread: No longer use locked context in initialization parts
+    - MEDIUM: lua-thread: Apply lock only if the parent state is the main thread
+    - MINOR: lua-thread: Replace global gL var with an array of states
+    - MINOR: lua-thread: Replace "struct hlua_function" allocation by dedicated function
+    - MINOR: lua-thread: Replace state_from by state_id
+    - MINOR: lua-thread: Store each function reference and init reference in array
+    - MEDIUM: lua-thread: Add the lua-load-per-thread directive
+    - MINOR: lua-thread: Add verbosity in errors
+    - REGTESTS: add a test for the threaded Lua code
+    - BUILD/MINOR: haproxy DragonFlyBSD affinity build update.
+    - DOC/MINOR: Fix formatting in Management Guide
+    - MINOR: cache: Do not store stale entry
+    - MINOR: cache: Add extra "cache-control" value checks
+    - MEDIUM: cache: Remove cache entry in case of POST on the same resource
+    - MINOR: cache: Consider invalid Age values as stale
+    - BUG/MEDIUM: lua-thread: some parts must be initialized once
+    - BUG/MINOR: lua-thread: close all states on deinit
+    - BUG/MINOR: listener: use sockaddr_in6 for IPv6
+    - BUG/MINOR: mux-h1: Handle keep-alive timeout for idle frontend connections
+    - MINOR: session: Add the idle duration field into the session
+    - MINOR: mux-h1: Update session idle duration when data are received
+    - MINOR: mux-h1: Reset session dates and durations info when the CS is detached
+    - MINOR: logs: Use session idle duration when no stream is provided
+    - MINOR: stream: Always get idle duration from the session
+    - MINOR: stream: Don't retrieve anymore timing info from the mux csinfo
+    - MINOR: mux-h1: Don't provide anymore timing info using cs_info structure
+    - MINOR: muxes: Remove get_cs_info callback function now useless
+    - MINOR: stream: Pass an optional input buffer when a stream is created
+    - MINOR: mux-h1: Add a flag to disable reads to wait opposite side
+    - MEDIUM: mux-h1: Use a h1c flag to block reads when splicing is in-progress
+    - MINOR: mux-h1: Introduce H1C_F_IS_BACK flag on the H1 connection
+    - MINOR: mux-h1: Separate parsing and formatting errors at H1 stream level
+    - MINOR: mux-h1: Split front/back h1 stream creation in 2 functions
+    - MINOR: mux-h1: Add a rxbuf into the H1 stream
+    - MINOR: mux-h1: Don't set CS flags in internal parsing functions
+    - MINOR: mux-h1: Add embryonic and attached states on the H1 connection
+    - MINOR: mux-h1: rework the h1_timeout_task() function
+    - MINOR: mux-h1: Reset more H1C flags when a H1 stream is destroyed
+    - MINOR: mux-h1: Disable reads if an error was reported on the H1 stream
+    - MINOR: mux-h1: Rework how shutdowns are handled
+    - MINOR: mux-h1: Rework h1_refresh_timeout to be easier to read
+    - MINOR: mux-h1: Process next request for IDLE connection only
+    - MINOR: mux-h1: Add a idle expiration date on the H1 connection
+    - MINOR: stick-tables: Add functions to update some values of a tracked counter
+    - MINOR: session: Add functions to increase http values of tracked counters
+    - MINOR: mux: Add a ctl parameter to get the exit status of the multiplexers
+    - MINOR: logs: Get the multiplexer exist status when no stream is provided
+    - MINOR: mux-h1: Add functions to send HTTP errors from the mux
+    - MAJOR: mux-h1: Create the client stream as later as possible
+    - DOC: config: Add notes about errors emitted by H1 mux
+    - CLEANUP: mux-h1: Rename H1C_F_CS_* flags and reorder H1C flags
+    - MINOR: http-ana: Remove useless update of t_idle duration of the stream
+    - CLEANUP: htx: Remove HTX_FL_UPGRADE unsued flag
+    - MEDIUM: http-ana: Don't process partial or empty request anymore
+    - CLEANUP: http-ana: Remove TX_WAIT_NEXT_RQ unsued flag
+    - CLEANUP: connection: Remove CS_FL_READ_PARTIAL flag
+    - REGTESTS: Fix proxy_protocol_tlv_validation
+    - MINOR: http-ana: Properly set message flags from the start-line flags
+    - MINOR: h1-htx/http-ana: Set BODYLESS flag on message in TUNNEL state
+    - MINOR: protocol: add a ->set_port() helper to address families
+    - MINOR: listener: automatically set the port when creating listeners
+    - MINOR: listener: now use a generic add_listener() function
+    - MEDIUM: ssl: fatal error with bundle + openssl < 1.1.1
+    - BUG/MEDIUM: stream: Xfer the input buffer to a fully created stream
+    - BUG/MINOR: stream: Don't use input buffer after the ownership xfer
+    - MINOR: protocol: remove the redundant ->sock_domain field
+    - MINOR: protocol: export protocol definitions
+    - CLEANUP: protocol: group protocol struct members by usage
+    - MINOR: protocol: add a set of ctrl_init/ctrl_close methods for setup/teardown
+    - MINOR: connection: use the control layer's init/close
+    - MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver()
+    - BUG/MAJOR: spoa/python: Fixing return None
+    - DOC: spoa/python: Fixing typo in IP related error messages
+    - DOC: spoa/python: Rephrasing memory related error messages
+    - DOC: spoa/python: Fixing typos in comments
+    - BUG/MINOR: spoa/python: Cleanup references for failed Module Addobject operations
+    - BUG/MINOR: spoa/python: Cleanup ipaddress objects if initialization fails
+    - BUG/MEDIUM: spoa/python: Fixing PyObject_Call positional arguments
+    - BUG/MEDIUM: spoa/python: Fixing references to None
+    - DOC: email change of the DeviceAtlas maintainer
+    - MINOR: cache: Dump secondary entries in "show cache"
+    - CLEANUP: connection: use fd_stop_both() instead of conn_stop_polling()
+    - MINOR: stream-int: don't touch polling anymore on shutdown
+    - MINOR: connection: implement cs_drain_and_close()
+    - MINOR: mux-pt: take care of CS_SHR_DRAIN in shutr()
+    - MINOR: checks: use cs_drain_and_close() instead of draining the connection
+    - MINOR: checks: don't call conn_cond_update_polling() anymore
+    - CLEANUP: connection: open-code conn_cond_update_polling() and update the comment
+    - CLEANUP: connection: remove the unused conn_{stop,cond_update}_polling()
+    - BUG/MINOR: http-check: Use right condition to consider HTX message as full
+    - BUG/MINOR: tcpcheck: Don't rearm the check timeout on each read
+    - MINOR: tcpcheck: Only wait for more payload data on HTTP expect rules
+    - BUG/MINOR: tools: make parse_time_err() more strict on the timer validity
+    - BUG/MINOR: tools: Reject size format not starting by a digit
+    - MINOR: action: define enum for timeout type of the set-timeout rule
+    - MINOR: stream: prepare the hot refresh of timeouts
+    - MEDIUM: stream: support a dynamic server timeout
+    - MEDIUM: stream: support a dynamic tunnel timeout
+    - MEDIUM: http_act: define set-timeout server/tunnel action
+    - MINOR: frontend: add client timeout sample fetch
+    - MINOR: backend: add timeout sample fetches
+    - MINOR: stream: add sample fetches
+    - MINOR: stream: add timeout sample fetches
+    - REGTESTS: add regtest for http-request set-timeout
+    - CLEANUP: remove the unused fd_stop_send() in conn_xprt_shutw{,_hard}()
+    - CLEANUP: connection: remove the unneeded fd_stop_{recv,send} on read0/shutw
+    - MINOR: connection: remove sock-specific code from conn_sock_send()
+    - REORG: connection: move the socket iocb (conn_fd_handler) to sock.c
+    - MINOR: protocol: add a ->drain() function at the connection control layer
+    - MINOR: connection: make conn_sock_drain() use the control layer's ->drain()
+    - MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer
+    - MEDIUM: connection: make use of the control layer check_events/ignore_events
+
 2020/12/01 : 2.4-dev2
     - BUILD: Make DEBUG part of .build_opts
     - BUILD: Show the value of DEBUG= in haproxy -vv
diff --git a/VERDATE b/VERDATE
index bf2980d..1fe5232 100644
--- a/VERDATE
+++ b/VERDATE
@@ -1,2 +1,2 @@
 $Format:%ci$
-2020/12/01
+2020/12/11
diff --git a/VERSION b/VERSION
index 8ea49d4..27dbabf 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.4-dev2
+2.4-dev3
diff --git a/doc/configuration.txt b/doc/configuration.txt
index 7de7087..ec1f249 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -4,7 +4,7 @@
                          ----------------------
                               version 2.4
                              willy tarreau
-                              2020/12/01
+                              2020/12/11
 
 
 This document covers the configuration language as implemented in the version