Hi,

HAProxy 2.1-dev2 was released on 2019/10/01. It added 399 new commits
after version 2.1-dev1.

Yes, I know. 2.1-dev1 was 2.5 months ago and now we're one-off from 400
commits just for dev2. It is quite a mess. The reality is that we've been
spending an insane amount of time away from coding, just doing nasty bug
chasing. Most of those who know me by now know how this drives me nuts,
because instead of spending time rebuilding the things that are falling
apart, we're planting a few nails here and there so that it lasts for yet
another release. There are still some pending bugs but since this is a
never-ending game and we've merged quite some features, I prefer to issue
dev2 now and ease testing than wait for the magical bug-free day.

The positive thing is that some very long-lasting issues related to aborted
H2 requests and uploads are now dead, and that the checks, eventhough the
code it getting uglier each week, now work much better. But all that still
needs to be done to address the shutdown vs abort issues, idle connections
sharing, sending of H2 CONTINUATION frames to support large response headers
in H2 and the complete rewrite of the checks... all these still have to be
done and most of them will definitely not be for 2.1 anymore.

But overall I'm staying positive. Killing a bug is still an improvement.
Since 2.1-dev1, we killed 124 of them, that's almost 2 per day including
week-ends, which is quite an amazing score, especially for a vacation
period!

And since I'm not seeing this trend go significantly down and predict some
of us will have less time to spend on this with the upcoming conference,
I'd like to urge a code freeze very soon. I'd have set it to yesterday but
doing so without prior notification is not friendly and it's my fault for
not having seen time fly this fast. So I'll take my share of the responsibility
for the situation and accept an extra delay... only for the stuff I've been
made aware of. Thus I proclaim that I'm not going to take anything that I've
not yet been told about right now, and will stop taking impacting changes
past Sunday 13th this month so that we can mostly focus on fixing issues,
polishing docs and adding more regtests if possible. Note that this must
not be used as an excuse for sending half-tested crap and hoping to fix it
later.

Now let's have a look at the new goodies in this version :
  - HTX is now the only supported HTTP mode, the old "legacy" mode was
    now removed. Good riddance, less maintenance hell! This remains
    transparent, unless you try to specify "no option http-use-htx"
    where you'll get an error.

  - removal of rsprep / reqrep etc... These were the oldest rules, still
    applying to a whole HTTP line (header or not). Not only they were not
    very reliable to use (syntax, spaces, ...), but they required to emulate
    a dummy request when dealing with H2, which didn't make any sense
    anymore. Plus it was not possible to use case-sensitivity only on the
    value without having it on the name...

  - the HTTP/1 mux now supports remapping header names when dealing with a
    bogus application that is having issues with case sensitivity. Please
    see "h1-case-adjust" in the doc for this if you're dealing with such
    issues.

  - we now support connecting to FastCGI backends. This was a direct outcome
    of supporting multiplexed connections everywhere, it was too tempting to
    give it a try. This can help improve resource management for example by
    limiting the number of concurrent requests much more accurately, and
    reducing the number of containers deployed in certain environments when
    a component such as nginx or lighttpd had to be deployed solely to serve
    as an HTTP-to-FCGI gateway.

  - the FD cache was completely removed. This was a leftover from the very
    old "speculative I/O" mode allowing to save a lot of syscalls in
    callbacks by keeping track of the last polling status. Now that our
    I/Os are called from top to bottom, it's not needed anymore, and can
    increase the performance up to ~20% on some artificially tailored
    workloads, but I still expect 5-10% in real production.

  - connections take much less memory as the source and destination
    addresses are now dynamically allocated if needed. That's 128 to 256
    bytes saved per connection and per side in the common case.

  - the thread dump used in panic code can now show Lua backtraces, so that
    in the event time is wasted in Lua (it should not, unless if you call
    an external library), it is possible to know the exact line of the Lua
    code that provoked this.

  - a trace infrastructure was added to help collect information from the
    field without having to recompile. Traces can be enabled from the CLI
    and collect data from several places with varying levels of details,
    and send them to stdio, log servers or ring buffers. As of dev2, the
    only source is the H2 mux.

  - as a bonus from the trace infrastructure, logs can now be sent to a ring
    buffer (only one, 1 MB for now, just requires config keywords to create
    more). This can be very convenient in some environments since just issuing
    a "show events buf0" on the CLI will show everything, and adding "-w -n"
    after it will work like "tail -f".

  - the SSL certificate management was significantly reworked to centralize
    certificate information so that certs are now loaded a single time even
    if multiple bind lines use them, and perform way less system calls. This
    is expected to substantially speed up loading of large setups where numbers
    in the orders of 10k to 100k certs are used. Some extra improvements are
    still pending on this (no more details, I'd rather avoid saying crap).

  - a part of the scheduler was improved to support waking up tasklets
    belonging to another thread. It is a necessary step to deal with inter-
    thread idle connections, but allowed to simplify quite some parts of the
    code and to speed up the accept() code.

  - SPOE now sends a per-thread engine-id allowing to support async mode with
    threads.

  - the stats page can now be exported in JSON mode, finally!

  - add new build target linux-glibc-legacy (for CentOS 6 and older)

  - new sample fetches and converters: srv_queue, fc_pp_authority, uuid

  - send-proxy-v2 can now send the authority, allowing to chain layers using
    SNI.

I've intentionally skipped many entries as you can guess, the change log
is quite large, but this is what I spotted. And I skipped the 124 bugfixes
as they are not new features :-) Thanks to all participants for these
efforts, especially the detailed bug reports. Now it's the users' turn to
spot bugs and refill our bag!

Please find the usual URLs below :
   Site index       : http://www.haproxy.org/
   Discourse        : http://discourse.haproxy.org/
   Slack channel    : https://slack.haproxy.org/
   Issue tracker    : https://github.com/haproxy/haproxy/issues
   Sources          : http://www.haproxy.org/download/2.1/src/
   Git repository   : http://git.haproxy.org/git/haproxy.git/
   Git Web browsing : http://git.haproxy.org/?p=haproxy.git
   Changelog        : http://www.haproxy.org/download/2.1/src/CHANGELOG
   Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/

Willy
---
Complete changelog :
Adis Nezirovic (1):
      BUG/MINOR: Missing stat_field_names (since f21d17bb)

Anthonin Bonnefoy (1):
      BUG/MINOR: Fix prometheus '# TYPE' and '# HELP' headers

Baptiste Assmann (3):
      MINOR: cache: add method to cache hash
      MINOR: cache: allow caching of OPTIONS request
      BUG/MINOR: action: do-resolve does not yield on requests with body

Christopher Faulet (133):
      MINOR: mux-h2: Don't adjust anymore the amount of data sent in 
h2_snd_buf()
      BUG/MINOR: http_fetch: Fix http_auth/http_auth_group when called from TCP 
rules
      BUG/MINOR: http_htx: Initialize HTX error messages for TCP proxies
      BUG/MINOR: cache/htx: Make maxage calculation HTX aware
      BUG/MINOR: hlua: Make the function txn:done() HTX aware
      MINOR: proto_htx: Directly call htx_check_response_for_cacheability()
      MINOR: proto_htx: Rely on the HTX function to apply a redirect rules
      MINOR: proto_htx: Add the function htx_return_srv_error()
      MINOR: backend/htx: Don't rewind output data to set the sni on a srv 
connection
      MINOR: proto_htx: Don't stop forwarding when there is a post-connect 
processing
      DOC: htx: Update comments in HTX files
      CLEANUP: htx: Remove the unsued function htx_add_blk_type_size()
      MINOR: htx: Deduce the number of used blocks from tail and head values
      MINOR: htx: Use an array of char to store HTX blocks
      MINOR: htx: Slightly update htx_dump() to report better messages
      DOC: htx: Add internal documentation about the HTX
      MAJOR: http: Deprecate and ignore the option "http-use-htx"
      MEDIUM: mux-h2: Remove support of the legacy HTTP mode
      CLEANUP: h2: Remove functions converting h2 requests to raw HTTP/1.1 ones
      MINOR: connection: Remove the multiplexer protocol PROTO_MODE_HTX
      MINOR: stream: Rely on HTX analyzers instead of legacy HTTP ones
      MEDIUM: http_fetch: Remove code relying on HTTP legacy mode
      MINOR: config: Remove tests on the option 'http-use-htx'
      MINOR: stream: Remove tests on the option 'http-use-htx' in stream_new()
      MINOR: proxy: Remove tests on the option 'http-use-htx' during H1 upgrade
      MINOR: hlua: Remove tests on the option 'http-use-htx' to reject TCP 
applets
      MINOR: cache: Remove tests on the option 'http-use-htx'
      MINOR: contrib/prometheus-exporter: Remove tests on the option 
'http-use-htx'
      CLEANUP: proxy: Remove the flag PR_O2_USE_HTX
      MINOR: proxy: Don't adjust connection mode of HTTP proxies anymore
      MEDIUM: backend: Remove code relying on the HTTP legacy mode
      MEDIUM: hlua: Remove code relying on the legacy HTTP mode
      MINOR: http_act: Remove code relying on the legacy HTTP mode
      MEDIUM: cache: Remove code relying on the legacy HTTP mode
      MEDIUM: compression: Remove code relying on the legacy HTTP mode
      MINOR: flt_trace: Remove code relying on the legacy HTTP mode
      MINOR: stats: Remove code relying on the legacy HTTP mode
      MAJOR: filters: Remove code relying on the legacy HTTP mode
      MINOR: stream: Remove code relying on the legacy HTTP mode
      MAJOR: http: Remove the HTTP legacy code
      MINOR: hlua: Remove useless test on TX_CON_WANT_* flags
      MINOR: proto_http: Remove unused http txn flags
      MINOR: proto_http: Remove the unused flag HTTP_MSGF_WAIT_CONN
      CLEANUP: proto_http: Group remaining flags of the HTTP transaction
      CLEANUP: channel: Remove the unused flag CF_WAKE_CONNECT
      CLEANUP: proto_http: Remove unecessary includes and comments
      CLEANUP: proto_http: Move remaining code from proto_http.c to proto_htx.c
      REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files
      BUG/MINOR: debug: Remove flags CO_FL_SOCK_WR_ENA/CO_FL_SOCK_RD_ENA
      MINOR: proxy: Remove support of the option 'http-tunnel'
      DOC: config: Update as a result of the legacy HTTP removal
      MEDIUM: config: Remove parsing of req* and rsp* directives
      MINOR: proxy: Remove the unused list of block rules
      MINOR: proxy/http_ana: Remove unused req_exp/rsp_exp and req_add/rsp_add 
lists
      DOC: config: Remove unsupported req* and rsp* keywords
      MINOR: global: Preset tune.max_http_hdr to its default value
      MINOR: http: Don't store raw HTTP errors in chunks anymore
      BUG/MINOR: session: Emit an HTTP error if accept fails only for H1 
connection
      BUG/MINOR: session: Send a default HTTP error if accept fails for a H1 
socket
      CLEANUP: mux-h2: Remove unused flags H2_SF_CHNK_*
      MINOR: config: Warn only if the option http-use-htx is used with "no" 
prefix
      BUG/MEDIUM: mux-h1: Trim excess server data at the end of a transaction
      BUG/MINOR: mux-h1: Close server connection if input data remains in 
h1_detach()
      BUG/MINOR: http_ana: Be sure to have an allocated buffer to generate an 
error
      BUG/MINOR: http_htx: Support empty errorfiles
      MEDIUM: mux-h1: Add the support of headers adjustment for bogus HTTP/1 
apps
      BUG/MEDIUM: lb-chash: Fix the realloc() when the number of nodes is 
increased
      BUG/MINOR: hlua/htx: Reset channels analyzers when txn:done() is called
      BUG/MEDIUM: hlua: Check the calling direction in lua functions of the 
HTTP class
      MINOR: hlua: Don't set request analyzers on response channel for lua 
actions
      MINOR: hlua: Add a flag on the lua txn to know in which context it can be 
used
      BUG/MINOR: hlua: Only execute functions of HTTP class if the txn is HTTP 
ready
      BUG/MINOR: htx: Fix free space addresses calculation during a block 
expansion
      BUG/MEDIUM: lb-chash: Ensure the tree integrity when server weight is 
increased
      BUG/MEDIUM: lua: Fix test on the direction to set the channel exp timeout
      BUG/MINOR: stats: Wait the body before processing POST requests
      BUG/MINOR: http-ana: Reset response flags when 1xx messages are handled
      BUG/MINOR: h1: Properly reset h1m when parsing is restarted
      BUG/MINOR: mux-h1: Fix size evaluation of HTX messages after headers 
parsing
      BUG/MINOR: mux-h1: Don't stop anymore input processing when the max is 
reached
      BUG/MINOR: mux-h1: Be sure to update the count before adding EOM after 
trailers
      BUG/MEDIUM: cache: Properly copy headers splitted on several shctx blocks
      BUG/MEDIUM: cache: Don't cache objects if the size of headers is too big
      BUG/MINOR: mux-h1: Fix a possible null pointer dereference in 
h1_subscribe()
      BUG/MINOR: mux-h1: Fix a UAF in cfg_h1_headers_case_adjust_postparser()
      MINOR: contrib/prometheus-exporter: Report DRAIN/MAINT/NOLB status for 
servers
      BUG/MINOR: listener: Fix a possible null pointer dereference
      BUG/MINOR: ssl: always check for ssl connection before getting its XPRT 
context
      MINOR: stats: Add JSON export from the stats page
      BUG/MINOR: filters: Properly set the HTTP status code on analysis error
      CLEANUP: mux-h2: Remove unused flag H2_SF_DATA_CHNK
      BUG/MINOR: acl: Fix memory leaks when an ACL expression is parsed
      BUG/MINOR: backend: Fix a possible null pointer dereference
      BUG/MEDIUM: stick-table: Properly handle "show table" with a data type 
argument
      MINOR: htx: Add a flag on HTX message to report processing errors
      MINOR: mux-h1: Report a processing error during output processing
      MINOR: http-ana: Handle HTX errors first during message analysis
      MINOR: http-ana: Remove err_state field from http_msg
      MINOR: config: Support per-proxy and per-server deinit functions callbacks
      MINOR: config: Support per-proxy and per-server post-check functions 
callbacks
      MINOR: http_fetch: Add sample fetches to get auth method/user/pass
      MINOR: istbuf: Add the function b_isteqi()
      MINOR: log: Provide a function to emit a log for an application
      MINOR: http: Add function to parse value of the header Status
      MEDIUM: mux-h1/h1-htx: move HTX convertion of H1 messages in dedicated 
file
      MINOR: h1-htx: Use the same function to copy message payload in all cases
      MINOR: muxes/htx: Ignore pseudo header during message formatting
      MINOR: fcgi: Add code related to FCGI protocol
      MEDIUM: fcgi-app: Add FCGI application and filter
      MEDIUM: mux-fcgi: Add the FCGI multiplexer
      MINOR: doc: Add documentation about the FastCGI support
      BUG/MINOR: build: Fix compilation of mux_fcgi.c when compiled without SSL
      BUG/MINOR: mux-h2: Be sure to have a connection to unsubcribe
      BUG/MINOR: mux-fcgi: Be sure to have a connection to unsubcribe
      CLEANUP: fcgi-app: Remove useless test on fcgi_conf pointer
      BUG/MINOR: mux-fcgi: Don't compare the filter name in its parsing callback
      BUG/MAJOR: mux-h2: Handle HEADERS frames received after a RST_STREAM frame
      BUG/MINOR: stream-int: Process connection/CS errors first in si_cs_send()
      BUG/MEDIUM: stream-int: Process connection/CS errors during synchronous 
sends
      CLEANUP: mux-fcgi: Remove the unused function fcgi_strm_id()
      BUG/MINOR: mux-fcgi: Use a literal string as format in app_log()
      BUG/MINOR: mux-h2: Fix missing braces because of traces in h2_detach()
      BUG/MINOR: mux-h2: Use the dummy error when decoding headers for a closed 
stream
      BUG/MAJOR: mux_h2: Don't consume more payload than received for skipped 
frames
      BUG/MINOR: mux-h1: Do h2 upgrade only on the first request
      MINOR: spoe: Improve generation of the engine-id
      MINOR: spoe: Support the async mode with several threads
      MINOR: http: Add server name header from HTTP multiplexers
      CLEANUP: http-ana: Remove the unused function http_send_name_header()
      MINOR: stats: Add the support of float fields in stats
      BUG/MINOR: contrib/prometheus-exporter: Return the time averages in 
seconds
      DOC: Fix documentation about the cli command to get resolver stats
      BUG/MINOR: stats: Add a missing break in a switch statement

David Carlier (1):
      BUILD/MINOR: auth: enabling for osx

Emeric Brun (1):
      BUG/MAJOR: ssl: ssl_sock was not fully initialized.

Emmanuel Hocdet (12):
      MINOR: ssl: use STACK_OF for chain certs
      MINOR: ssl: add extra chain compatibility
      MINOR: ssl: check private key consistency in loading
      MINOR: ssl: do not look at DHparam with OPENSSL_NO_DH
      CLEANUP: ssl: ssl_sock_load_crt_file_into_ckch
      MINOR: ssl: clean ret variable in ssl_sock_load_ckchn
      BUILD: ssl: BoringSSL add EVP_PKEY_base_id
      BUG/MINOR: ssl: fix ressource leaks on error
      BUG/MINOR: ssl: fix 0-RTT for BoringSSL
      MINOR: ssl: ssl_fc_has_early should work for BoringSSL
      MINOR: send-proxy-v2: sends authority TLV according to TLV received
      BUG/MINOR: build: fix event ports (Solaris)

Frédéric Lécaille (2):
      BUG/MEDIUM: stick-table: Wrong stick-table backends parsing.
      BUG/MEDIUM: peers: local peer socket not bound.

Geoff Simmons (1):
      MINOR: connection: add the fc_pp_authority fetch -- authority TLV, from 
PROXYv2

Ilya Shipitsin (7):
      BUILD: travis-ci: enable daily Coverity scan
      BUILD: travis-ci: trigger non-mainstream configurations only on daily 
builds.
      BUILD: CI: add basic CentOS 6 cirrus build
      BUILD: CI: skip reg-tests/connection/proxy_protocol_random_fail.vtc on 
CentOS 6
      BUILD: CI: temporarily disable ASAN
      BUILD: CI: install golang-1.13 when building BoringSSL
      BUILD: travis-ci: add PCRE2, SLZ build

Jerome Magnin (2):
      BUG/MEDIUM: url32 does not take the path part into account in the 
returned hash.
      BUILD: connection: silence gcc warning with extra parentheses

Jérôme Magnin (3):
      DOC: management: document reuse and connect counters in the CSV format
      DOC: management: document cache_hits and cache_lookups in the CSV format
      REGTESTS: checks: exclude freebsd target for tcp-check_multiple_ports.vtc

Kevin Zhu (1):
      BUG/MEDIUM: spoe: Use a different engine-id per process

Krisztian Kovacs (1):
      BUG/MEDIUM: namespace: close open namespaces during soft shutdown

Krisztián Kovács (kkovacs) (1):
      BUG/MEDIUM: namespace: fix fd leak in master-worker mode

Luca Schimweg (1):
      MINOR: sample: Add UUID-fetch

Lukas Tribus (2):
      BUG/MINOR: lua: fix setting netfilter mark
      MINOR: build: add linux-glibc-legacy build TARGET

Nenad Merdanovic (1):
      MINOR: backend: Add srv_queue converter

Olivier Houchard (22):
      BUG/MEDIUM: checks: Don't attempt to receive data if we already 
subscribed.
      BUG/CRITICAL: http_ana: Fix parsing of malformed cookies which start by a 
delimiter
      BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to 
send.
      MEDIUM: h1: Don't try to subscribe if we managed to read data.
      MEDIUM: h1: Don't wake the H1 tasklet if we got the whole request.
      MAJOR: fd: Get rid of the fd cache.
      MEDIUM: pollers: Remember the state for read and write for each threads.
      BUG/MEDIUM: proxy: Make sure to destroy the stream on upgrade from TCP to 
H2
      BUG/MEDIUM: fd: Always reset the polled_mask bits in fd_dodelete().
      BUG/MEDIUM: pollers: Clear the poll_send bits as well.
      BUG/MEDIUM: proxy: Don't forget the SF_HTX flag when upgrading 
TCP=>H1+HTX.
      BUG/MEDIUM: proxy: Don't use cs_destroy() when freeing the conn_stream.
      BUG/MEDIUM: mux_pt: Don't call unsubscribe if we did not subscribe.
      BUG/MEDIUM: h1: Always try to receive more in h1_rcv_buf().
      MEDIUM: list: Separate "locked" list from regular list.
      MINOR: mt_lists: Add new macroes.
      MEDIUM: servers: Use LIST_DEL_INIT() instead of LIST_DEL().
      MINOR: mt_lists: Do nothing in MT_LIST_ADD/MT_LIST_ADDQ if already in 
list.
      MINOR: mt_lists: Give MT_LIST_ADD, MT_LIST_ADDQ and MT_LIST_DEL a return 
value.
      MEDIUM: tasklets: Make the tasklet list a struct mt_list.
      TESTS: Add a stress-test for mt_lists.
      BUG/MEDIUM: tasklets: Make sure we're waking the target thread if it 
sleeps.

Richard Russo (1):
      BUG/MAJOR: http/sample: use a static buffer for raw -> htx conversion

Tim Duesterhus (5):
      DOC: Add 'Question.md' issue template, discouraging asking questions
      BUG/MINOR: lua: Properly initialize the buffer's fields for string 
samples in hlua_lua2(smp|arg)
      CLEANUP: lua: Get rid of obsolete (size_t *) cast in hlua_lua2(smp|arg)
      BUG/MEDIUM: lua: Store stick tables into the sample's `t` field
      CLEANUP: proxy: Remove `proxy_tbl_by_name`

William Lallemand (12):
      MINOR: ssl: merge ssl_sock_load_cert_file() and 
ssl_sock_load_cert_chain_file()
      MEDIUM: ssl: use cert_key_and_chain struct in ssl_sock_load_cert_file()
      MEDIUM: ssl: split the loading of the certificates
      MEDIUM: ssl: lookup and store in a ckch_node tree
      MEDIUM: ssl: load DH param in struct cert_key_and_chain
      BUG/BUILD: ssl: fix build with openssl < 1.0.2
      BUG/MEDIUM: ssl: does not try to free a DH in a ckch
      BUG/MEDIUM: ssl: don't free the ckch in multi-cert bundle
      BUG/MEDIUM: ssl: open the right path for multi-cert bundle
      BUG/MINOR: mux-fcgi: silence a gcc warning about null dereference
      BUILD: ssl: fix a warning when built with openssl < 1.0.2
      DOC: replace utf-8 quotes by ascii ones

Willy Tarreau (184):
      BUG/MINOR: dns: remove irrelevant dependency on a client connection
      MINOR: applet: make appctx use their own pool
      BUG/MEDIUM: http/htx: unbreak option http_proxy
      BUG/MINOR: backend: do not try to install a mux when the connection failed
      BUG/MINOR: checks: do not exit tcp-checks from the middle of the loop
      MINOR: connection: add conn_get_src() and conn_get_dst()
      MINOR: frontend: switch to conn_get_{src,dst}() for logging and debugging
      MINOR: backend: switch to conn_get_{src,dst}() for port and address 
mapping
      MINOR: ssl: switch to conn_get_dst() to retrieve the destination address
      MINOR: tcp: replace various calls to conn_get_{from,to}_addr with 
conn_get_{src,dst}
      MINOR: stream-int: use conn_get_{src,dst} in conn_si_send_proxy()
      MINOR: stream/cli: use conn_get_{src,dst} in "show sess" and "show peers" 
output
      MINOR: log: use conn_get_{dst,src}() to retrieve the cli/frt/bck/srv/ 
addresses
      MINOR: http/htx: use conn_get_dst() to retrieve the destination address
      MINOR: lua: use conn_get_{src,dst} to retrieve connection addresses
      MINOR: http: check the source address via conn_get_src() in sample fetch 
functions
      CLEANUP: connection: remove the now unused conn_get_{from,to}_addr()
      MINOR: connection: add new src and dst fields
      MINOR: connection: use conn->{src,dst} instead of &conn->addr.{from,to}
      MINOR: ssl-sock: use conn->dst instead of &conn->addr.to
      MINOR: lua: switch to conn->dst for a connection's target address
      MINOR: peers: use conn->dst for the peer's target address
      MINOR: htx: switch from conn->addr.{from,to} to conn->{src,dst}
      MINOR: stream: switch from conn->addr.{from,to} to conn->{src,dst}
      MINOR: proxy: switch to conn->src in error snapshots
      MINOR: session: use conn->src instead of conn->addr.from
      MINOR: tcp: replace conn->addr.{from,to} with conn->{src,dst}
      MINOR: unix: use conn->dst for the target address in ->connect()
      MINOR: sockpair: use conn->dst for the target address in ->connect()
      MINOR: log: use conn->{src,dst} instead of conn->addr.{from,to}
      MINOR: checks: replace conn->addr.to with conn->dst
      MINOR: frontend: switch from conn->addr.{from,to} to conn->{src,dst}
      MINOR: http: convert conn->addr.from to conn->src in sample fetches
      MEDIUM: backend: turn all conn->addr.{from,to} to conn->{src,dst}
      MINOR: connection: create a new pool for struct sockaddr_storage
      MEDIUM: connection: make sure all address producers allocate their address
      MAJOR: connection: remove the addr field
      MINOR: connection: don't use clear_addr() anymore, just release the 
address
      MINOR: stream: add a new target_addr entry in the stream structure
      MAJOR: stream: store the target address into s->target_addr
      MINOR: peers: now remove the remote connection setup code
      MEDIUM: lua: do not allocate the remote connection anymore
      MEDIUM: backend: always release any existing prior connection in 
connect_server()
      MEDIUM: backend: remove impossible cases from connect_server()
      BUG/MEDIUM: tcp-checks: do not dereference inexisting conn_stream
      BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff
      BUG/MINOR: proxy: always lock stop_proxy()
      BUILD: threads: add the definition of PROTO_LOCK
      BUG/MINOR: log: make sure writev() is not interrupted on a file output
      DOC: improve the wording in CONTRIBUTING about how to document a bug fix
      BUG/MAJOR: queue/threads: avoid an AB/BA locking issue in 
process_srv_queue()
      MEDIUM: mux-h2: don't try to read more than needed
      BUG/MINOR: debug: fix a small race in the thread dumping code
      MINOR: wdt: also consider that waiting in the thread dumper is normal
      REGTESTS: checks: make 4be_1srv_health_checks more reliable
      BUG/MINOR: stream-int: make sure to always release empty buffers after 
sending
      BUG/MINOR: stream-int: also update analysers timeouts on activity
      BUG/MEDIUM: mux-h2: unbreak receipt of large DATA frames
      BUG/MEDIUM: mux-h2: split the stream's and connection's window sizes
      BUG/MINOR: mux-h2: don't refrain from sending an RST_STREAM after another 
one
      BUG/MINOR: mux-h2: use CANCEL, not STREAM_CLOSED in h2c_frt_handle_data()
      BUG/MINOR: mux-h2: do not send REFUSED_STREAM on aborted uploads
      BUG/MEDIUM: mux-h2: do not recheck a frame type after a state transition
      BUG/MINOR: mux-h2: always send stream window update before connection's
      BUG/MINOR: mux-h2: always reset rcvd_s when switching to a new frame
      BUG/MEDIUM: checks: make sure to close nicely when we're the last to speak
      CLEANUP: mux-h2: move the demuxed frame check code in its own function
      BUG/MINOR: pools: don't mark the thread harmless if already isolated
      BUG/MINOR: buffers/threads: always clear a buffer's head before releasing 
it
      CLEANUP: buffer: replace b_drop() with b_free()
      CLEANUP: task: move the cpu_time field to the task-only part
      MINOR: cli: add two new states to print messages on the CLI
      MINOR: cli: add cli_msg(), cli_err(), cli_dynmsg(), cli_dynerr()
      CLEANUP: cli: replace all occurrences of manual handling of return 
messages
      MINOR: fd: make sure to mark the thread as not stuck in fd_update_events()
      MINOR: debug: indicate the applet name when the task is task_run_applet()
      MINOR: tools: add append_prefixed_str()
      MINOR: lua: export applet and task handlers
      MEDIUM: debug: make the thread dump code show Lua backtraces
      MINOR: list: add LIST_SPLICE() to merge one list into another
      MINOR: tools: add a DEFNULL() macro to use NULL for empty args
      REORG: trace: rename trace.c to calltrace.c and mention it's not 
thread-safe
      MINOR: sink: create definitions a minimal code for event sinks
      MINOR: sink: add a support for file descriptors
      MINOR: trace: start to create a new trace subsystem
      MINOR: trace: add allocation of buffer-sized trace buffers
      MINOR: trace/cli: register the "trace" CLI keyword to list the sources
      MINOR: trace/cli: parse the "level" argument to configure the trace 
verbosity
      MINOR: trace/cli: add "show trace" to report trace state and statistics
      MINOR: trace: implement a very basic trace() function
      MINOR: trace: add the file name and line number in the prefix
      MINOR: trace: make trace() now also take a level in argument
      MINOR: trace: implement a call to a decode function
      MINOR: trace: add per-level macros to produce traces
      MINOR: trace: add a definition of typed arguments to trace()
      MINOR: trace: make sure to always stop the locking when stopping or 
pausing
      MINOR: trace: add the possibility to lock on some arguments
      MINOR: trace: parse the "lock" argument to trace
      MINOR: trace: retrieve useful pointers and enforce lock-on
      DOC: management: document the "trace" and "show trace" commands
      BUILD: trace: make the lockon_ptr const to silence a warning without 
threads
      BUG/MEDIUM: mux-h1: do not truncate trailing 0CRLF on buffer boundary
      BUG/MEDIUM: mux-h1: do not report errors on transfers ending on buffer 
full
      BUG/MINOR: mworker: disable SIGPROF on re-exec
      BUG/MEDIUM: listener/threads: fix an AB/BA locking issue in 
delete_listener()
      MINOR: sink: set the fd-type sinks to non-blocking
      MINOR: tools: add a function varint_bytes() to report the size of a varint
      MINOR: buffer: add functions to read/write varints from/to buffers
      MINOR: fd: add fd_write_frag_line() to send a fragmented line to an fd
      MINOR: sink: now call the generic fd write function
      MINOR: ring: add a new mechanism for retrieving/storing ring data in 
buffers
      MINOR: ring: add a ring_write() function
      MINOR: ring: add a generic CLI io_handler to dump a ring buffer
      MINOR: sink: add support for ring buffers
      MINOR: sink: implement "show events" to show supported sinks and dump the 
rings
      MINOR: sink: now report the number of dropped events on output
      MINOR: trace: support a default callback for the source
      MINOR: trace: extend the source location to 13 chars
      MINOR: trace: show thread number and source name in the trace
      MINOR: trace: change the TRACE() calling convention to put the args and 
cb last
      MINOR: tools: add a generic struct "name_desc" for name-description pairs
      MINOR: trace: replace struct trace_lockon_args with struct name_desc
      MINOR: trace: change the "payload" level to "data" and move it
      MINOR: trace: prepend the function name for developer level traces
      MINOR: trace: also report the trace level in the output
      MINOR: trace: change the detail_level to per-source verbosity
      MINOR: mux-h2/trace: register a new trace source with its events
      MINOR: mux-h2/trace: add the default decoding callback
      MEDIUM: mux-h2/trace: add lots of traces all over the code
      MINOR: mux-h2: add functions to convert an h2c/h2s state to a string
      MINOR: mux-h2/trace: add a new verbosity level "clean"
      MINOR: mux-h2/trace: only decode the start-line at verbosity other than 
"minimal"
      MINOR: mux-h2/trace: always report the h2c/h2s state and flags
      MINOR: mux-h2/trace: report h2s->id before h2c->dsi for the stream ID
      CLEANUP: mux-h2/trace: reformat the "received" messages for better 
alignment
      CLEANUP: mux-h2/trace: lower-case event names
      MINOR: trace: extend default event names to 12 chars
      BUG/MINOR: ring: fix the way watchers are counted
      MINOR: cli: extend the CLI context with a list and two offsets
      MINOR: mux-h2/trace: report the connection pointer and state before 
FRAME_H
      MEDIUM: ring: implement a wait mode for watchers
      BUG/MEDIUM: mux-h2/trace: do not dereference h2c->conn after failed idle
      BUG/MEDIUM: mux-h2/trace: fix missing braces added with traces
      BUG/MINOR: ring: b_peek_varint() returns a uint64_t, not a size_t
      CLEANUP: fd: remove leftovers of the fdcache
      MINOR: fd: add a new "initialized" bit in the fdtab struct
      MINOR: fd/log/sink: make the non-blocking initialization depend on the 
initialized bit
      MEDIUM: log: use the new generic fd_write_frag_line() function
      MINOR: log: add a target type instead of hacking the address family
      MEDIUM: log: add support for logging to a ring buffer
      MEDIUM: fd: remove the FD_EV_POLLED status bit
      MEDIUM: fd: simplify the fd_*_{recv,send} functions using BTS/BTR
      MINOR: fd: make updt_fd_polling() a normal function
      CONTRIB: debug: add new program "poll" to test poll() events
      BUG/MINOR: checks: stop polling for write when we have nothing left to 
send
      BUG/MINOR: checks: start sending the request right after connect()
      BUG/MINOR: checks: make __event_chk_srv_r() report success before closing
      BUG/MINOR: checks: do not uselessly poll for reads before the connection 
is up
      BUG/MINOR: lb/leastconn: ignore the server weights for empty servers
      MEDIUM: fd: mark the FD as ready when it's inserted
      MINOR: fd: add two new calls fd_cond_{recv,send}()
      MEDIUM: connection: enable reading only once the connection is confirmed
      MINOR: fd: add two flags ERR and SHUT to describe FD states
      MEDIUM: fd: do not use the FD_POLL_* flags in the pollers anymore
      BUG/MEDIUM: connection: don't keep more idle connections than ever needed
      MINOR: stats: report the number of idle connections for each server
      BUG/MEDIUM: check/threads: make external checks run exclusively on thread 
1
      OPTIM: listeners: use tasklets for the multi-queue rings
      BUILD: makefile: work around yet another GCC fantasy (-Wstring-plus-int)
      BUG/MEDIUM: checks: make sure the connection is ready before trying to 
recv
      CLEANUP: task: remove impossible test
      CLEANUP: task: cache the task_per_thread pointer
      MINOR: task: split the tasklet vs task code in process_runnable_tasks()
      MINOR: task: introduce a thread-local "sched" variable for local 
scheduler stuff
      MINOR: h2/trace: indicate 'F' or 'B' to locate the side of an h2c in 
traces
      MINOR: h2/trace: report the frame type when known
      BUG/MINOR: mux-h2: do not wake up blocked streams before the mux is ready
      MINOR: time: add timeofday_as_iso_us() to return instant time as ISO
      MINOR: sink: finally implement support for SINK_FMT_{TIMED,ISO}
      MINOR: sink: change ring buffer "buf0"'s format to "timed"
      BUG/MEDIUM: mux-h2: don't reject valid frames on closed streams
      BUG/MEDIUM: fcgi: fix missing list tail in sample fetch registration
      BUG/MEDIUM: fd: HUP is an error only when write is active
      Revert "MINOR: cache: allow caching of OPTIONS request"

n...@users.noreply.github.com (1):
      DOC: fixed typo in management.txt

---

Reply via email to