Changes since version 2.5-dev8 : Christopher Faulet (15): MINOR: log: Try to get the status code when MUX_EXIT_STATUS is retrieved MINOR: mux-h1: Set error code if possible when MUX_EXIT_STATUS is returned MINOR: mux-h1: Be able to set custom status code on parsing error MEDIUM: mux-h1: Reject HTTP/1.0 GET/HEAD/DELETE requests with a payload MEDIUM: h1: Force close mode for invalid uses of T-E header BUG/MINOR: mux-h1/mux-fcgi: Sanitize TE header to only send "trailers" MINOR: http: Add 422-Unprocessable-Content error message MINOR: h1: Change T-E header parsing to fail if chunked encoding is found twice BUG/MEDIUM: mux-h1/mux-fcgi: Reject messages with unknown transfer encoding REGTESTS: Add script to validate T-E header parsing MINOR: arg: Be able to forbid unresolved args when building an argument list BUG/MINOR: tcpcheck: Don't use arg list for default proxies during parsing BUG/MINOR: tcp-rules: Stop content rules eval on read error and end-of-input BUG/MEDIUM: filters: Fix a typo when a filter is attached blocking the release BUG/MEDIUM: http-ana: Clear request analyzers when applying redirect rule Emeric Brun (1): DOC: peers: fix doc "enable" statement on "peers" sections Remi Tricot-Le Breton (3): MINOR: ssl: Set connection error code in case of SSL read or write fatal failure MINOR: ssl: Rename ssl_bc_hsk_err to ssl_bc_err MINOR: ssl: Store the last SSL error code in case of read or write failure Thayne McCombs (1): DOC: configuration: add clarification on escaping in keyword arguments William Lallemand (18): head-truc REGTESTS: lua: test the httpclient:get() feature Revert "head-truc" BUG/MEDIUM: httpclient: replace ist0 by istptr MINOR: Makefile: add MEMORY_POOLS to the list of DEBUG_xxx options REGTESTS: ssl: enable show_ssl_ocspresponse.vtc again REGTESTS: ssl: enable ssl_crt-list_filters.vtc again REGTESTS: ssl: show_ssl_ocspresponse w/ freebsd won't use base64 REGTESTS: ssl: wrong feature cmd in show_ssl_ocspresponse.vtc MINOR: httpclient: destroy() must free the headers and the ists MINOR: httpclient: set HTTPCLIENT_F_ENDED only in release MINOR: httpclient: stop_and_destroy() ask the applet to autokill MINOR: httpclient: test if started during stop_and_destroy() MINOR: httpclient/lua: implement garbage collection BUG/MEDIUM: httpclient/lua: crash because of b_xfer and get_trash_chunk() MINOR: httpclient: destroy checks if a client was started but not stopped BUG/MINOR: httpclient/lua: does not process headers when failed MINOR: httpclient/lua: supports headers via named arguments Willy Tarreau (78): MINOR: config: use a standard parser for the "nbthread" keyword CLEANUP: init: remove useless test against MAX_THREADS in affinity loop MEDIUM: init: de-uglify the per-thread affinity setting MINOR: init: extract the setup and end of threads to their own functions REORG: pools: move default settings to defaults.h BUG/MEDIUM: lua: fix wakeup condition from sleep() BUG/MAJOR: lua: use task_wakeup() to properly run a task once MINOR: tasks: catch TICK_ETERNITY with BUG_ON() in __task_queue() CLEANUP: tasks: remove the long-unused work_lists MINOR: task: provide 3 task_new_* wrappers to simplify the API MINOR: time: uninline report_idle() and move it to task.c REORG: sched: move idle time calculation from time.h to task.h REORG: sched: move the stolen CPU time detection to sched_entering_poll() CLEANUP: server: always include the storage for SSL settings CLEANUP: sample: rename sample_conv_var2smp() to *_sint CLEANUP: sample: uninline sample_conv_var2smp_str() MINOR: sample: provide a generic var-to-sample conversion function BUG/MEDIUM: sample: properly verify that variables cast to sample BUILD: action: add the relevant structures for function arguments BUILD: extcheck: needs to include stream-t.h BUILD: hlua: needs to include stream-t.h BUILD: stats: define several missing structures in stats.h BUILD: resolvers: define missing types in resolvers.h BUILD: httpclient: include missing ssl_sock-t BUILD: sample: include openssl-compat BUILD: http_ana: need to include proxy-t to get redirect_rule BUILD: http_rules: requires http_ana-t.h for REDIRECT_* BUILD: vars: need to include xxhash BUILD: peers: need to include eb{32/mb/pt}tree.h BUILD: ssl_ckch: include ebpttree.h in ssl_ckch.c BUILD: compiler: add the container_of() and container_of_safe() macros BUILD: idleconns: include missing ebmbtree.h at several places BUILD: connection: connection.h needs list.h and server.h BUILD: tree-wide: add missing http_ana.h from many places BUILD: cfgparse-ssl: add missing errors.h BUILD: tcp_sample: include missing errors.h and session-t.h BUILD: mworker: mworker-prog needs time.h for the 'now' variable BUILD: tree-wide: add several missing activity.h BUILD: compat: fix -Wundef on SO_REUSEADDR CLEANUP: pools: pools-t.h doesn't need to include thread-t.h REORG: pools: uninline the UAF allocator and force-inline the rest REORG: thread: uninline the lock-debugging code MINOR: thread/debug: replace nsec_now() with now_mono_time() CLEANUP: remove some unneeded includes from applet-t.h REORG: listener: move bind_conf_alloc() and listener_state_str() to listener.c CLEANUP: listeners: do not include openssl-compat CLEANUP: servers: do not include openssl-compat REORG: ssl: move ssl_sock_is_ssl() to connection.h and rename it CLEANUP: mux_fcgi: remove dependency on ssl_sock CLEANUP: ssl/server: move ssl_sock_set_srv() to srv_set_ssl() in server.c REORG: ssl-sock: move the sslconns/totalsslconns counters to global REORG: sample: move the crypto samples to ssl_sample.c REORG: sched: moved samp_time and idle_time to task.c as well REORG: time/ticks: move now_ms and global_now_ms definitions to ticks.h CLEANUP: tree-wide: remove unneeded include time.h in ~20 files REORG: activity: uninline activity_count_runtime() REORG: acitvity: uninline sched_activity_entry() CLEANUP: stream: remove many unneeded includes from stream-t.h CLEANUP: stick-table: no need to include socket nor in.h MINOR: connection: use uint64_t for the hashes REORG: connection: move the hash-related stuff to connection.c REORG: connection: uninline conn_notify_mux() and conn_delete_from_tree() REORG: server: uninline the idle conns management functions REORG: ebtree: split structures into their own file ebtree-t.h CLEANUP: tree-wide: only include ebtree-t from type files REORG: connection: move the largest inlines from connection.h to connection.c CLEANUP: connection: do not include http_ana! CLEANUP: connection: remove unneeded tcpcheck-t.h and use only session-t.h REORG: connection: uninline the rest of the alloc/free stuff REORG: task: uninline the loop time measurement code CLEANUP: time: move a few configurable defines to defaults.h CLEANUP: fd: do not include time.h REORG: fd: uninline compute_poll_timeout() CLENAUP: wdt: use ha_tkill() instead of accessing pthread directly REORG: thread: move the thread init/affinity/stop to thread.c REORG: thread: move ha_get_pthread_id() to thread.c MINOR: thread: use a dedicated static pthread_t array in thread.c CLEANUP: thread: uninline ha_tkill/ha_tkillall/ha_cpu_relax()