Changes since version 2.4-dev16 : Alex (2): MINOR: sample: converter: Add mjson library. MINOR: sample: converter: Add json_query converter Amaury Denoyelle (8): BUG/MINOR: server: free srv.lb_nodes in free_server BUG/MINOR: logs: free logsrv.conf.file on exit BUG/MEDIUM: server: ensure thread-safety of server runtime creation MINOR: server: add log on dynamic server creation MINOR: server: implement delete server cli command BUG/MINOR: server: fix potential null gcc error in delete server BUG/MEDIUM: config: fix cpu-map notation with both process and threads MINOR: config: add a diag for invalid cpu-map statement Christopher Faulet (31): MINOIR: mux-pt/trace: Register a new trace source with its events BUG/MINOR: mux-pt: Fix a possible UAF because of traces in mux_pt_io_cb MINOR: trace: Add the checks as a possible trace source MINOIR: checks/trace: Register a new trace source with its events MINOR: hlua: Add function to release a lua function BUG/MINOR: hlua: Fix memory leaks on error path when registering a task BUG/MINOR: hlua: Fix memory leaks on error path when registering a converter BUG/MINOR: hlua: Fix memory leaks on error path when registering a fetch BUG/MINOR: hlua: Fix memory leaks on error path when parsing a lua action BUG/MINOR: hlua: Fix memory leaks on error path when registering an action BUG/MINOR: hlua: Fix memory leaks on error path when registering a service BUG/MINOR: hlua: Fix memory leaks on error path when registering a cli keyword BUG/MINOR: cfgparse/proxy: Fix some leaks during proxy section parsing BUG/MINOR: listener: Handle allocation error when allocating a new bind_conf BUG/MINOR: cfgparse/proxy: Hande allocation errors during proxy section parsing MINOR: cfgparse/proxy: Group alloc error handling during proxy section parsing BUG/MEDIUM: threads: Ignore current thread to end its harmless period MINOR: threads: Only consider running threads to end a thread harmeless period BUG/MINOR: checks: Set missing id to the dummy checks frontend MINOR: logs: Add support of checks as session origin to format lf strings BUG/MINOR: connection: Fix fc_http_major and bc_http_major for TCP connections MINOR: connection: Make bc_http_major compatible with tcp-checks BUG/MINOR: ssl-samples: Fix ssl_bc_* samples when called from a health-check BUG/MINOR: http-fetch: Make method smp safe if headers were already forwarded MINOR: tcp_samples: Add samples to get src/dst info of the backend connection MINOR: tcp_samples: Be able to call bc_src/bc_dst from the health-checks BUG/MINOR: http_htx: Remove BUG_ON() from http_get_stline() function BUG/MINOR: logs: Report the true number of retries if there was no connection BUILD: makefile: Redirect stderr to /dev/null when probing options BUG/MAJOR: mux-h2: Properly detect too large frames when decoding headers BUG/MEDIUM: mux-h2: Fix dfl calculation when merging CONTINUATION frames Ilya Shipitsin (2): CI: cirrus: install "pcre" package CI: travis-ci: enable weekly graviton2 builds Maximilian Mader (3): BUG/MINOR: uri_normalizer: Use delim parameter when building the sorted query in uri_normalizer_query_sort CLEANUP: uri_normalizer: Remove trailing whitespace MINOR: uri_normalizer: Add a `strip-dot` normalizer Miroslav Zagorac (2): MINOR: opentracing: correct calculation of the number of arguments in the args[] MINOR: opentracing: transfer of context names without prefix Moemen MHEDHBI (2): MINOR: sample: add ub64dec and ub64enc converters CLEANUP: sample: align samples list in sample.c Remi Tricot-Le Breton (3): DOC: internals: update the SSL architecture schema DOC: ssl: Certificate hot update only works on fronted certificates DOC: ssl: Certificate hot update works on server certificates Thayne McCombs (1): BUG/MEDIUM: sample: Fix adjusting size in field converter Tim Duesterhus (16): CI: travis: Drastically clean up .travis.yml MINOR: ist: Add `istclear(struct ist*)` MINOR: uri_normalizer: Add uri_normalizer module MINOR: uri_normalizer: Add `enum uri_normalizer_err` MINOR: uri_normalizer: Add `http-request normalize-uri` MINOR: uri_normalizer: Add a `merge-slashes` normalizer to http-request normalize-uri MINOR: uri_normalizer: Add a `dotdot` normalizer to http-request normalize-uri MINOR: uri_normalizer: Add support for supressing leading `../` for dotdot normalizer MINOR: uri_normalizer: Add a `sort-query` normalizer MINOR: uri_normalizer: Add a `percent-upper` normalizer MEDIUM: http_act: Rename uri-normalizers DOC: Add introduction to http-request normalize-uri DOC: Note that URI normalization is experimental CLEANUP: sample: Improve local variables in sample_conv_json_query CLEANUP: sample: Explicitly handle all possible enum values from mjson CLEANUP: sample: Use explicit return for successful `json_query`s William Lallemand (2): BUG/MINOR: mworker/init: don't reset nb_oldpids in non-mworker cases BUG/MINOR: mworker: don't use oldpids[] anymore for reload Willy Tarreau (74): CLEANUP: pattern: make all pattern tables read-only MINOR: trace: replace the trace() inline function with an equivalent macro MINOR: initcall: uniformize the section names between MacOS and other unixes CLEANUP: initcall: rename HA_SECTION to HA_INIT_SECTION MINOR: compiler: add macros to declare section names CLEANUP: initcall: rely on HA_SECTION_* instead of defining its own MINOR: global: declare a read_mostly section MINOR: fd: move a few read-mostly variables to their own section MINOR: epoll: move epoll_fd to read_mostly MINOR: kqueue: move kqueue_fd to read_mostly MINOR: pool: move pool declarations to read_mostly MINOR: threads: mark all_threads_mask as read_mostly MINOR: server: move idle_conn_task to read_mostly MINOR: protocol: move __protocol_by_family to read_mostly MINOR: pattern: make the pat_lru_seed read_mostly MINOR: trace: make trace sources read_mostly MINOR: freq_ctr: add a generic function to report the total value MEDIUM: freq_ctr: make read_freq_ctr_period() use freq_ctr_total() MEDIUM: freq_ctr: reimplement freq_ctr_remain_period() from freq_ctr_total() MINOR: freq_ctr: add the missing next_event_delay_period() MINOR: freq_ctr: unify freq_ctr and freq_ctr_period into freq_ctr MEDIUM: freq_ctr: replace the per-second counters with the generic ones MINOR: freq_ctr: add cpu_relax in the rotation loop of update_freq_ctr_period() MINOR: freq_ctr: simplify and improve the update function CLEANUP: time: remove the now unused ms_left_scaled MINOR: time: move the time initialization out of tv_update_date() MINOR: time: remove useless variable copies in tv_update_date() MINOR: time: change the global timeval and the the global tick at once MEDIUM: time: make the clock offset global and no per-thread MINOR: atomic: reimplement the relaxed version of x86 BTS/BTR BUG/MINOR: pools: maintain consistent ->allocated count on alloc failures BUG/MINOR: pools/buffers: make sure to always reserve the required buffers MINOR: pools: drop the unused static history of artificially failed allocs CLEANUP: pools: remove unused arguments to pool_evict_from_cache() MEDIUM: pools: move the cache into the pool header MINOR: pool: remove the size field from pool_cache_head MINOR: pools: rename CONFIG_HAP_LOCAL_POOLS to CONFIG_HAP_POOLS MINOR: pools: enable the fault injector in all allocation modes MINOR: pools: make the basic pool_refill_alloc()/pool_free() update needed_avg MEDIUM: pools: unify pool_refill_alloc() across all models CLEANUP: pools: re-merge pool_refill_alloc() and __pool_refill_alloc() MINOR: pools: call pool_alloc_nocache() out of the pool's lock CLEANUP: pools: move the lock to the only __pool_get_first() that needs it CLEANUP: pools: rename __pool_get_first() to pool_get_from_shared_cache() CLEANUP: pools: rename pool_*_{from,to}_cache() to *_local_cache() CLEANUP: pools: rename __pool_free() to pool_put_to_shared_cache() MINOR: tools: add statistical_prng_range() to get a random number over a range MINOR: pools: use cheaper randoms for fault injections MINOR: pools: move the fault injector to __pool_alloc() MINOR: pools: split the OS-based allocator in two MINOR: pools: always use atomic ops to maintain counters MINOR: pools: move pool_free_area() out of the lock in the locked version MINOR: pools: factor the release code into pool_put_to_os() MEDIUM: pools: make CONFIG_HAP_POOLS control both local and shared pools MINOR: pools: create unified pool_{get_from,put_to}_cache() MINOR: pools: evict excess objects using pool_evict_from_local_cache() MEDIUM: pools: make pool_put_to_cache() always call pool_put_to_local_cache() CLEANUP: pools: make the local cache allocator fall back to the shared cache CLEANUP: pools: merge pool_{get_from,put_to}_local_caches with generic ones CLEANUP: pools: uninline pool_put_to_cache() CLEANUP: pools: declare dummy pool functions to remove some ifdefs BUILD: pools: fix build with DEBUG_FAIL_ALLOC BUG/MINOR: server: make srv_alloc_lb() allocate lb_nodes for consistent hash CONTRIB: mod_defender: import the minimal number of includes CONTRIB: mod_defender: make the code build with the embedded includes CONTRIB: modsecurity: import the minimal number of includes CONTRIB: modsecurity: make the code build with the embedded includes CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion CONTRIB: move spoa_example out of the tree CONTRIB: move spoa_server out of the tree CONTRIB: move modsecurity out of the tree CONTRIB: move mod_defender out of the tree CLEANUP: contrib: remove the last references to the now dead contrib/ directory BUILD: makefile: fix the "make clean" target on strict bourne shells