[RELEASE] Released version 2.2-dev4
Released version 2.2-dev4 with the following main changes :
- MEDIUM: buffer: remove the buffer_wq lock
- MINOR: ssl: move find certificate chain code to its own function
- MINOR: ssl: resolve issuers chain later
- MINOR: ssl: resolve ocsp_issuer later
- MINOR: ssl/cli: "show ssl cert" command should print the "Chain Filename:"
- BUG/MINOR: h2: reject again empty :path pseudo-headers
- MINOR: wdt: always clear sigev_value to make valgrind happy
- MINOR: epoll: always initialize all of epoll_event to please valgrind
- BUG/MINOR: sample: Make sure to return stable IDs in the unique-id fetch
- BUG/MEDIUM: ssl: chain must be initialized with sk_X509_new_null()
- BUILD: cirrus-ci: suppress OS version check when installing packages
- BUG/MINOR: http_ana: make sure redirect flags don't have overlapping bits
- CLEANUP: fd: remove the FD_EV_STATUS aggregate
- CLEANUP: fd: remove some unneeded definitions of FD_EV_* flags
- MINOR: fd: merge the read and write error bits into RW error
- BUG/MINOR: dns: ignore trailing dot
- MINOR: contrib/prometheus-exporter: Add the last heathcheck duration metric
- BUG/MINOR: http-htx: Do case-insensive comparisons on Host header name
- MINOR: mux-h1: Remove useless case-insensitive comparisons
- MINOR: rawsock: always mark the FD not ready when we're certain it happens
- MEDIUM: connection: make the subscribe() call able to wakeup if ready
- MEDIUM: connection: don't stop receiving events in the FD handler
- MEDIUM: mux-h1: do not blindly wake up the tasklet at end of request anymore
- BUG/MINOR: arg: don't reject missing optional args
- MINOR: tools: make sure to correctly check the returned 'ms' in date2std_log
- MINOR: debug: report the task handler's pointer relative to main
- BUG/MEDIUM: debug: make the debug_handler check for the thread in threads_to_dump
- MINOR: haproxy: export main to ease access from debugger
- MINOR: haproxy: export run_poll_loop
- MINOR: task: export run_tasks_from_list
- BUILD: tools: remove obsolete and conflicting trace() from standard.c
- MINOR: tools: add new function dump_addr_and_bytes()
- MINOR: tools: add resolve_sym_name() to resolve function pointers
- MINOR: debug: use resolve_sym_name() to dump task handlers
- MINOR: cli: make "show fd" rely on resolve_sym_name()
- MEDIUM: debug: add support for dumping backtraces of stuck threads
- MINOR: debug: call backtrace() once upon startup
- MINOR: ssl: add "ca-verify-file" directive
- BUG/MINOR: wdt: do not return an error when the watchdog couldn't be enabled
- BUILD: Makefile: include librt before libpthread
- MEDIUM: wdt: fall back to CLOCK_REALTIME if CLOCK_THREAD_CPUTIME is not available
- MINOR: wdt: do not depend on USE_THREAD
- MINOR: debug: report the number of entries in the backtrace
- MINOR: debug: improve backtrace() on aarch64 and possibly other systems
- MINOR: debug: use our own backtrace function on clang+x86_64
- MINOR: debug: dump the whole trace if we can't spot the starting point
- BUILD: tools: unbreak resolve_sym_name() on non-GNU platforms
- BUILD: tools: rely on __ELF__ not USE_DL to enable use of dladdr()
- CLEANUP: contrib/spoa_example: Fix several typos
- BUILD: makefile: do not modify the build options during make reg-tests
- BUG/MEDIUM: connection: stop polling for sending when the event is ready
- MEDIUM: stream-int: make sure to try to immediately validate the connection
- MINOR: tcp/uxst/sockpair: only ask for I/O when really waiting for a connect()
- MEDIUM: connection: only call ->wake() for connect() without I/O
- OPTIM: connection: disable receiving on disabled events when the run queue is too high
- OPTIM: mux-h1: subscribe rather than waking up at a few other places
- REGTEST: Add unique-id reg-test
- MINOR: stream: Add stream_generate_unique_id function
- MINOR: stream: Use stream_generate_unique_id
- BUG/MINOR: connection/debug: do not enforce !event_type on subscribe() anymore
- MINOR: ssl/cli: support crt-list filters
- MINOR: ssl: reach a ckch_store from a sni_ctx
- DOC: fix incorrect indentation of http_auth_*
- BUG/MINOR: ssl-sock: do not return an uninitialized pointer in ckch_inst_sni_ctx_to_sni_filters
- MINOR: debug: add CLI command "debug dev write" to write an arbitrary size
- MINOR: ist: Add `IST_NULL` macro
- MINOR: ist: Add `int isttest(const struct ist)`
- MINOR: ist: Add `struct ist istalloc(size_t)` and `void istfree(struct ist*)`
- CLEANUP: Use `isttest()` and `istfree()`
- MINOR: ist: Add `struct ist istdup(const struct ist)`
- MINOR: proxy: Make `header_unique_id` a `struct ist`
- MEDIUM: stream: Make the `unique_id` member of `struct stream` a `struct ist`
- OPTIM: startup: fast unique_id allocation for acl.
- DOC: configuration.txt: fix various typos
- DOC: assorted typo fixes in the documentation and Makefile
- BUG/MINOR: init: make the automatic maxconn consider the max of soft/hard limits
- BUG/MAJOR: proxy_protocol: Properly validate TLV lengths
- CLEANUP: proxy_protocol: Use `size_t` when parsing TLVs
- MINOR: buf: Add function to insert a string at an absolute offset in a buffer
- MINOR: htx: Add a function to return a block at a specific offset
- MINOR: htx: Use htx_find_offset() to truncate an HTX message
- MINOR: flt_trace: Use htx_find_offset() to get the available payload length
- BUG/MINOR: filters: Use filter offset to decude the amount of forwarded data
- BUG/MINOR: filters: Forward everything if no data filters are called
- BUG/MEDIUM: cache/filters: Fix loop on HTX blocks caching the response payload
- BUG/MEDIUM: compression/filters: Fix loop on HTX blocks compressing the payload
- BUG/MINOR: http-ana: Reset request analysers on a response side error
- BUG/MINOR: lua: Abort when txn:done() is called from a Lua action
- BUG/MINOR: lua: Ignore the reserve to know if a channel is full or not
- MINOR: lua: Add function to know if a channel is a response one
- MINOR: lua: Stop using the lua txn in hlua_http_get_headers()
- MINOR: lua: Stop using the lua txn in hlua_http_rep_hdr()
- MINOR: lua: Stop using lua txn in hlua_http_del_hdr() and hlua_http_add_hdr()
- MINOR: lua: Remove the flag HLUA_TXN_HTTP_RDY
- MINOR: lua: Rename hlua_action_wake_time() to hlua_set_wake_time()
- BUG/MINOR: lua: Init the lua wake_time value before calling a lua function
- BUG/MINOR: http-rules: Return ACT_RET_ABRT to abort a transaction
- BUG/MINOR: http-rules: Preserve FLT_END analyzers on reject action
- BUG/MINOR: http-rules: Fix a typo in the reject action function
- MINOR: cache/filters: Initialize the cache filter when stream is created
- MINOR: compression/filters: Initialize the comp filter when stream is created
- BUG/MINOR: rules: Preserve FLT_END analyzers on silent-drop action
- BUG/MINOR: rules: Return ACT_RET_ABRT when a silent-drop action is executed
- BUG/MINOR: rules: Increment be_counters if backend is assigned for a silent-drop
- BUG/MINOR: http-rules: Abort transaction when a redirect is applied on response
- BUILD: buffer: types/{ring.h,checks.h} should include buf.h, not buffer.h
- BUILD: ssl: include mini-clist.h
- BUILD: global: must not include common/standard.h but only types/freq_ctr.h
- BUILD: freq_ctr: proto/freq_ctr needs to include common/standard.h
- BUILD: listener: types/listener.h must not include standard.h
- BUG/MEDIUM: random: initialize the random pool a bit better
- BUG/MEDIUM: random: implement per-thread and per-process random sequences
- Revert "BUG/MEDIUM: random: implement per-thread and per-process random sequences"
- BUILD: cirrus-ci: get rid of unstable freebsd images
- MINOR: tools: add 64-bit rotate operators
- BUG/MEDIUM: random: implement a thread-safe and process-safe PRNG
- MINOR: backend: use a single call to ha_random32() for the random LB algo
- BUG/MINOR: checks/threads: use ha_random() and not rand()
- MINOR: sample: make all bits random on the rand() sample fetch
- MINOR: tools: add a generic function to generate UUIDs
- DOC: fix typo about no-tls-tickets
- DOC: improve description of no-tls-tickets
- DOC: assorted typo fixes in the documentation
- CLEANUP: remove unused code in 'my_ffsl/my_flsl' functions
diff --git a/CHANGELOG b/CHANGELOG
index 99b7b9e..1dabb4a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,132 @@
ChangeLog :
===========
+2020/03/09 : 2.2-dev4
+ - MEDIUM: buffer: remove the buffer_wq lock
+ - MINOR: ssl: move find certificate chain code to its own function
+ - MINOR: ssl: resolve issuers chain later
+ - MINOR: ssl: resolve ocsp_issuer later
+ - MINOR: ssl/cli: "show ssl cert" command should print the "Chain Filename:"
+ - BUG/MINOR: h2: reject again empty :path pseudo-headers
+ - MINOR: wdt: always clear sigev_value to make valgrind happy
+ - MINOR: epoll: always initialize all of epoll_event to please valgrind
+ - BUG/MINOR: sample: Make sure to return stable IDs in the unique-id fetch
+ - BUG/MEDIUM: ssl: chain must be initialized with sk_X509_new_null()
+ - BUILD: cirrus-ci: suppress OS version check when installing packages
+ - BUG/MINOR: http_ana: make sure redirect flags don't have overlapping bits
+ - CLEANUP: fd: remove the FD_EV_STATUS aggregate
+ - CLEANUP: fd: remove some unneeded definitions of FD_EV_* flags
+ - MINOR: fd: merge the read and write error bits into RW error
+ - BUG/MINOR: dns: ignore trailing dot
+ - MINOR: contrib/prometheus-exporter: Add the last heathcheck duration metric
+ - BUG/MINOR: http-htx: Do case-insensive comparisons on Host header name
+ - MINOR: mux-h1: Remove useless case-insensitive comparisons
+ - MINOR: rawsock: always mark the FD not ready when we're certain it happens
+ - MEDIUM: connection: make the subscribe() call able to wakeup if ready
+ - MEDIUM: connection: don't stop receiving events in the FD handler
+ - MEDIUM: mux-h1: do not blindly wake up the tasklet at end of request anymore
+ - BUG/MINOR: arg: don't reject missing optional args
+ - MINOR: tools: make sure to correctly check the returned 'ms' in date2std_log
+ - MINOR: debug: report the task handler's pointer relative to main
+ - BUG/MEDIUM: debug: make the debug_handler check for the thread in threads_to_dump
+ - MINOR: haproxy: export main to ease access from debugger
+ - MINOR: haproxy: export run_poll_loop
+ - MINOR: task: export run_tasks_from_list
+ - BUILD: tools: remove obsolete and conflicting trace() from standard.c
+ - MINOR: tools: add new function dump_addr_and_bytes()
+ - MINOR: tools: add resolve_sym_name() to resolve function pointers
+ - MINOR: debug: use resolve_sym_name() to dump task handlers
+ - MINOR: cli: make "show fd" rely on resolve_sym_name()
+ - MEDIUM: debug: add support for dumping backtraces of stuck threads
+ - MINOR: debug: call backtrace() once upon startup
+ - MINOR: ssl: add "ca-verify-file" directive
+ - BUG/MINOR: wdt: do not return an error when the watchdog couldn't be enabled
+ - BUILD: Makefile: include librt before libpthread
+ - MEDIUM: wdt: fall back to CLOCK_REALTIME if CLOCK_THREAD_CPUTIME is not available
+ - MINOR: wdt: do not depend on USE_THREAD
+ - MINOR: debug: report the number of entries in the backtrace
+ - MINOR: debug: improve backtrace() on aarch64 and possibly other systems
+ - MINOR: debug: use our own backtrace function on clang+x86_64
+ - MINOR: debug: dump the whole trace if we can't spot the starting point
+ - BUILD: tools: unbreak resolve_sym_name() on non-GNU platforms
+ - BUILD: tools: rely on __ELF__ not USE_DL to enable use of dladdr()
+ - CLEANUP: contrib/spoa_example: Fix several typos
+ - BUILD: makefile: do not modify the build options during make reg-tests
+ - BUG/MEDIUM: connection: stop polling for sending when the event is ready
+ - MEDIUM: stream-int: make sure to try to immediately validate the connection
+ - MINOR: tcp/uxst/sockpair: only ask for I/O when really waiting for a connect()
+ - MEDIUM: connection: only call ->wake() for connect() without I/O
+ - OPTIM: connection: disable receiving on disabled events when the run queue is too high
+ - OPTIM: mux-h1: subscribe rather than waking up at a few other places
+ - REGTEST: Add unique-id reg-test
+ - MINOR: stream: Add stream_generate_unique_id function
+ - MINOR: stream: Use stream_generate_unique_id
+ - BUG/MINOR: connection/debug: do not enforce !event_type on subscribe() anymore
+ - MINOR: ssl/cli: support crt-list filters
+ - MINOR: ssl: reach a ckch_store from a sni_ctx
+ - DOC: fix incorrect indentation of http_auth_*
+ - BUG/MINOR: ssl-sock: do not return an uninitialized pointer in ckch_inst_sni_ctx_to_sni_filters
+ - MINOR: debug: add CLI command "debug dev write" to write an arbitrary size
+ - MINOR: ist: Add `IST_NULL` macro
+ - MINOR: ist: Add `int isttest(const struct ist)`
+ - MINOR: ist: Add `struct ist istalloc(size_t)` and `void istfree(struct ist*)`
+ - CLEANUP: Use `isttest()` and `istfree()`
+ - MINOR: ist: Add `struct ist istdup(const struct ist)`
+ - MINOR: proxy: Make `header_unique_id` a `struct ist`
+ - MEDIUM: stream: Make the `unique_id` member of `struct stream` a `struct ist`
+ - OPTIM: startup: fast unique_id allocation for acl.
+ - DOC: configuration.txt: fix various typos
+ - DOC: assorted typo fixes in the documentation and Makefile
+ - BUG/MINOR: init: make the automatic maxconn consider the max of soft/hard limits
+ - BUG/MAJOR: proxy_protocol: Properly validate TLV lengths
+ - CLEANUP: proxy_protocol: Use `size_t` when parsing TLVs
+ - MINOR: buf: Add function to insert a string at an absolute offset in a buffer
+ - MINOR: htx: Add a function to return a block at a specific offset
+ - MINOR: htx: Use htx_find_offset() to truncate an HTX message
+ - MINOR: flt_trace: Use htx_find_offset() to get the available payload length
+ - BUG/MINOR: filters: Use filter offset to decude the amount of forwarded data
+ - BUG/MINOR: filters: Forward everything if no data filters are called
+ - BUG/MEDIUM: cache/filters: Fix loop on HTX blocks caching the response payload
+ - BUG/MEDIUM: compression/filters: Fix loop on HTX blocks compressing the payload
+ - BUG/MINOR: http-ana: Reset request analysers on a response side error
+ - BUG/MINOR: lua: Abort when txn:done() is called from a Lua action
+ - BUG/MINOR: lua: Ignore the reserve to know if a channel is full or not
+ - MINOR: lua: Add function to know if a channel is a response one
+ - MINOR: lua: Stop using the lua txn in hlua_http_get_headers()
+ - MINOR: lua: Stop using the lua txn in hlua_http_rep_hdr()
+ - MINOR: lua: Stop using lua txn in hlua_http_del_hdr() and hlua_http_add_hdr()
+ - MINOR: lua: Remove the flag HLUA_TXN_HTTP_RDY
+ - MINOR: lua: Rename hlua_action_wake_time() to hlua_set_wake_time()
+ - BUG/MINOR: lua: Init the lua wake_time value before calling a lua function
+ - BUG/MINOR: http-rules: Return ACT_RET_ABRT to abort a transaction
+ - BUG/MINOR: http-rules: Preserve FLT_END analyzers on reject action
+ - BUG/MINOR: http-rules: Fix a typo in the reject action function
+ - MINOR: cache/filters: Initialize the cache filter when stream is created
+ - MINOR: compression/filters: Initialize the comp filter when stream is created
+ - BUG/MINOR: rules: Preserve FLT_END analyzers on silent-drop action
+ - BUG/MINOR: rules: Return ACT_RET_ABRT when a silent-drop action is executed
+ - BUG/MINOR: rules: Increment be_counters if backend is assigned for a silent-drop
+ - BUG/MINOR: http-rules: Abort transaction when a redirect is applied on response
+ - BUILD: buffer: types/{ring.h,checks.h} should include buf.h, not buffer.h
+ - BUILD: ssl: include mini-clist.h
+ - BUILD: global: must not include common/standard.h but only types/freq_ctr.h
+ - BUILD: freq_ctr: proto/freq_ctr needs to include common/standard.h
+ - BUILD: listener: types/listener.h must not include standard.h
+ - BUG/MEDIUM: random: initialize the random pool a bit better
+ - BUG/MEDIUM: random: implement per-thread and per-process random sequences
+ - Revert "BUG/MEDIUM: random: implement per-thread and per-process random sequences"
+ - BUILD: cirrus-ci: get rid of unstable freebsd images
+ - MINOR: tools: add 64-bit rotate operators
+ - BUG/MEDIUM: random: implement a thread-safe and process-safe PRNG
+ - MINOR: backend: use a single call to ha_random32() for the random LB algo
+ - BUG/MINOR: checks/threads: use ha_random() and not rand()
+ - MINOR: sample: make all bits random on the rand() sample fetch
+ - MINOR: tools: add a generic function to generate UUIDs
+ - DOC: fix typo about no-tls-tickets
+ - DOC: improve description of no-tls-tickets
+ - DOC: assorted typo fixes in the documentation
+ - CLEANUP: remove unused code in 'my_ffsl/my_flsl' functions
+
2020/02/25 : 2.2-dev3
- SCRIPTS: announce-release: place the send command in the mail's header
- SCRIPTS: announce-release: allow the user to force to overwrite old files