Changes since version 2.0-dev0 : Alex Zorin (1): MINOR: payload: add sample fetch for TLS ALPN Christopher Faulet (26): MINOR: channel: Add the function channel_add_input MINOR: stats/htx: Call channel_add_input instead of updating channel state by hand BUG/MEDIUM: cache: Be sure to end the forwarding when XFER length is unknown BUG/MAJOR: htx: Return the good block address after a defrag BUG/MAJOR: stream-int: Update the stream expiration date in stream_int_notify() BUG/MEDIUM: proto-htx: Set SI_FL_NOHALF on server side when request is done BUG/MEDIUM: mux-h1: Add a task to handle connection timeouts MINOR: stream/htx: Add info about the HTX structs in "show sess all" command MINOR: stream: Add the subscription events of SIs in "show sess all" command MINOR: mux-h1: Add the subscription events in "show fd" command BUG/MEDIUM: h1: Get the h1m state when restarting the headers parsing BUG/MINOR: cache/htx: Be sure to count partial trailers MINOR: htx: Add an helper function to get the max space usable for a block MINOR: channel/htx: Add HTX version for some helper functions BUG/MEDIUM: cache/htx: Respect the reserve when cached objects are served BUG/MINOR: stats/htx: Respect the reserve when the stats page is dumped BUG/MINOR: mux-h1: Close connection on shutr only when shutw was really done MEDIUM: mux-h1: Clarify how shutr/shutw are handled BUG/MINOR: compression: Disable it if another one is already in progress BUG/MINOR: filters: Detect cache+compression config on legacy HTTP streams BUG/MINOR: cache: Disable the cache if any compression filter precedes it MINOR: htx: Add a function to truncate all blocks after a specific offset MINOR: channel/htx: Add the HTX version of channel_truncate/erase BUG/MINOR: proto_htx: Use HTX versions to truncate or erase a buffer BUG/MINOR: lua/htx: Respect the reserve when data are send from an HTX applet MINOR: spoe: Make the SPOE filter compatible with HTX proxies Daniel Corbett (1): BUG/MEDIUM: init: Initialize idle_orphan_conns for first server in server-template David Carlier (1): BUILD/MEDIUM: da: Necessary code changes for new buffer API. Emeric Brun (3): BUG/MINOR: base64: dec func ignores padding for output size checking BUG/MEDIUM: ssl: missing allocation failure checks loading tls key file MINOR: ssl: add support of aes256 bits ticket keys on file and cli. Frédéric Lécaille (4): REGTEST: Add a reg test for health-checks over SSL/TLS. REGTEST: "capture (request|response)" regtest. REGTEST: Switch to vtest. REGTEST: Adapt reg test doc files to vtest. Frédéric Lécaille (1): REGTEST: Add some informatoin to test results. Jarno Huuskonen (6): DOC: Fix typo in req.ssl_alpn example (commit 4afdd138424ab...) DOC: http-request cache-use / http-response cache-store expects cache name REGTESTS: test case for map_regm commit 271022150d REGTESTS: Basic tests for concat,strcmp,word,field,ipmask converters REGTESTS: Basic tests for using maps to redirect requests / select backend DOC: REGTESTS README varnishtest -Dno-htx= define. Jérôme Magnin (1): BUG/MINOR: htx: send the proper authenticate header when using http-request auth Olivier Houchard (18): BUG/MEDIUM: servers: Don't try to reuse connection if we switched server. BUG/MEDIUM: tasks: Decrement tasks_run_queue in tasklet_free(). BUG/MEDIUM: mux_h2: Don't add to the idle list if we're full. BUG/MEDIUM: servers: Fail if we fail to allocate a conn_stream. BUG/MAJOR: servers: Use the list api correctly to avoid crashes. BUG/MAJOR: servers: Correctly use LIST_ELEM(). BUG/MAJOR: sessions: Use an unlimited number of servers for the conn list. BUG/MEDIUM: servers: Flag the stream_interface on handshake error. MEDIUM: servers: Be smarter when switching connections. MEDIUM: sessions: Keep track of which connections are idle. BUG/MEDIUM: h1: In h1_init(), wake the tasklet instead of calling h1_recv(). BUG/MEDIUM: server: Defer the mux init until after xprt has been initialized. MINOR: connections: Remove a stall comment. BUG/MEDIUM: ssl: Disable anti-replay protection and set max data with 0RTT. DOC: Be a bit more explicit about allow-0rtt security implications. MINOR: checks: Store the proxy in checks. BUG/MEDIUM: checks: Avoid having an associated server for email checks. BUG/MEDIUM: h1: Make sure we destroy an inactive connectin that did shutw. PiBa-NL (2): REGTEST: mailers: add new test for 'mailers' section REGTEST: filters: add compression test Thierry FOURNIER (2): BUG/MINOR: lua: bad args are returned for Lua actions BUG/MEDIUM: lua: dead lock when Lua tasks are trigerred Tim Duesterhus (1): BUG/MINOR: stick_table: Prevent conn_cur from underflowing Willy Tarreau (66): MINOR: mux-h2: only increase the connection window with the first update REGTESTS: remove the expected window updates from H2 handshakes BUG/MINOR: mux-h2: make empty HEADERS frame return a connection error BUG/MEDIUM: mux-h2: mark that we have too many CS once we have more than the max MEDIUM: mux-h2: remove padlen during headers phase MINOR: h2: add a bit-based frame type representation MINOR: mux-h2: remove useless check for empty frame length in h2s_decode_headers() MEDIUM: mux-h2: decode HEADERS frames before allocating the stream MINOR: mux-h2: make h2c_send_rst_stream() use the dummy stream's error code MINOR: mux-h2: add a new dummy stream for the REFUSED_STREAM error code MINOR: mux-h2: fail stream creation more cleanly using RST_STREAM MINOR: buffers: add a new b_move() function MINOR: mux-h2: make h2_peek_frame_hdr() support an offset MEDIUM: mux-h2: handle decoding of CONTINUATION frames CLEANUP: mux-h2: remove misleading comments about CONTINUATION BUG/MEDIUM: log: don't mark log FDs as non-blocking on terminals MINOR: lb: allow redispatch when using consistent hash CLEANUP: mux-h2: fix end-of-stream flag name when processing headers BUG/MEDIUM: mux-h2: always restart reading if data are available BUG/MINOR: mux-h2: set the stream-full flag when leaving h2c_decode_headers() BUG/MINOR: mux-h2: don't check the CS count in h2c_bck_handle_headers() BUG/MINOR: mux-h2: mark end-of-stream after processing response HEADERS, not before BUG/MINOR: mux-h2: only update rxbuf's length for H1 headers BUG/MEDIUM: mux-h1: use per-direction flags to indicate transitions BUG/MEDIUM: mux-h1: make HTX chunking consistent with H2 MINOR: mux-h2: make h2c_decode_headers() return a status, not a count MINOR: mux-h2: add a new dummy stream : h2_error_stream MEDIUM: mux-h2: make h2c_decode_headers() support recoverable errors BUG/MINOR: mux-h2: detect when the HTX EOM block cannot be added after headers MINOR: mux-h2: remove a misleading and impossible test CLEANUP: mux-h2: clean the stream error path on HEADERS frame processing MINOR: mux-h2: check for too many streams only for idle streams MINOR: mux-h2: set H2_SF_HEADERS_RCVD when a HEADERS frame was decoded BUG/MEDIUM: mux-h2: decode trailers in HEADERS frames MINOR: h2: add h2_make_h1_trailers to turn H2 headers to H1 trailers MEDIUM: mux-h2: pass trailers to H1 (legacy mode) MINOR: htx: add a new function to add a block without filling it MINOR: h2: add h2_make_htx_trailers to turn H2 headers to HTX trailers MEDIUM: mux-h2: pass trailers to HTX MINOR: mux-h1: parse the content-length header on output and set H1_MF_CLEN BUG/MEDIUM: mux-h1: don't enforce chunked encoding on requests MINOR: mux-h2: make HTX_BLK_EOM processing idempotent MINOR: h1: make the H1 headers block parser able to parse headers only MEDIUM: mux-h2: emit HEADERS frames when facing HTX trailers blocks BUG/MEDIUM: cli: make "show sess" really thread-safe BUILD: add a new file "version.c" to carry version updates MINOR: stream/htx: add the HTX flags output in "show sess all" MINOR: stream/cli: fix the location of the waiting flag in "show sess all" MINOR: stream/cli: report more info about the HTTP messages on "show sess all" DOC: regtest: make it clearer what the purpose of the "broken" series is BUG/CRITICAL: mux-h2: re-check the frame length when PRIORITY is used MINOR: mux-h1: make the mux_h1_ops struct static BUILD: makefile: add an EXTRA_OBJS variable to help build optional code BUG/MEDIUM: connection: properly unregister the mux on failed initialization BUG/MAJOR: cache: fix confusion between zero and uninitialized cache key BUG/MINOR: backend: don't use url_param_name as a hint for BE_LB_ALGO_PH BUG/MINOR: backend: balance uri specific options were lost across defaults BUG/MINOR: backend: BE_LB_LKUP_CHTREE is a value, not a bit MINOR: backend: move url_param_name/len to lbprm.arg_str/len MINOR: backend: make headers and RDP cookie also use arg_str/len MINOR: backend: add new fields in lbprm to store more LB options MINOR: backend: make the header hash use arg_opt1 for use_domain_only MINOR: backend: remap the balance uri settings to lbprm.arg_opt{1,2,3} MINOR: backend: move hash_balance_factor out of chash MEDIUM: backend: move all LB algo parameters into an union MINOR: backend: make the random algorithm support a number of draws