Hi, HAProxy 1.7-dev4 was released on 2016/08/14. It added 112 new commits after version 1.7-dev3, it was time to issue another release. Many of them were bugs also fixed in 1.6, so I won't enumerate them again.
One change that may affect some users is that we removed the magic consisting in assigning a server's check port to the same port as the first port of the first "bind" directive in the listener if any. It doesn't make sense at all, is not documented, doesn't work in many situations (eg: unix sockets) and makes it impossible to improve the configuration. Normally nobody uses this anymore since 1.6 due to the fact that it is not allowed anymore to specify a port on the "listen" line. Developers may notice that now everything is rebuilt when they modify a ".h" file. Just do like me, append "DEP=" to your make command line and it will continue to work as before. Non-developer users are protected against easy mistakes and we are not bothered by a dependency hell. A number of build fixes for OpenBSD were merged. In fact it would not build anymore since 1.6 due to various missing includes (or include order). It's now OK. I'm surprized that we didn't receive any complaint in one year, in the past people would report OpenBSD breakage. Maybe these users are now on FreeBSD which seems to work very well. There were other updates like "set-src-port", "set-dst", "set-dst-port" actions, to force the incoming src/dst address/port to be replaced by the one in argument (useful for logging and also to force a connection to go to a server configured as 0.0.0.0). Another new action is the "track-sc" for http-response. This is nice to for counting certain response events. The "show tls-keys" CLI command can now display the current secrets. There were some filter changes that I don't remember well about but I know were important (sorry Chris). The SNI filters now support multicerts (rsa/ecdsa). We can also decode the Netscaler's CIP protocol which is an alternative to haproxy's PROXY protocol. We now have a few new sample fetch functions reporting various TCP-level information on Linux, FreeBSD and NetBSD such as RTT, number of retransmits, etc. It can make logs more usable during troubleshooting. And finally the command-line "-f" argument now supports directories in addition to file names. Files are loaded in alphabetical order. It is convenient for certain users, but beware of the orderning, use at your own risk! Please find the usual URLs below : Site index : http://www.haproxy.org/ Discourse : http://discourse.haproxy.org/ Sources : http://www.haproxy.org/download/1.7/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/1.7/src/CHANGELOG Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/ Willy --- Complete changelog : Baptiste Assmann (4): BUILD: make proto_tcp.c compatible with musl library MINOR: standard.c: ipcmp() function to compare 2 IP addresses stored in 2 struct sockaddr_storage MINOR: standard.c: ipcpy() function to copy an IP address from a struct sockaddr_storage into an other one MAJOR: listen section: don't use first bind port anymore when no server ports are provided Bertrand Jacquin (2): MINOR: listener: add the "accept-netscaler-cip" option to the "bind" keyword MINOR: tcp: add "tcp-request connection expect-netscaler-cip layer4" Christopher Faulet (7): MEDIUM: filters: Move HTTP headers filtering in its own callback MINOR: filters: Simplify calls to analyzers using 2 new macros MEDIUM: filters: Add pre and post analyzer callbacks DOC: filters: Update the filters documentation accordingly to recent changes BUG/MEDIUM: filters: Fix data filtering when data are modified BUG/MINOR: filters: Fix HTTP parsing when a filter loops on data forwarding BUG/MINOR: Rework slightly commit 9962f8fc to clean code and avoid mistakes Cyril Bonté (1): BUG/MEDIUM: stats: show servers state may show an servers from another backend Dan Lloyd (1): DOC: spelling fixes David Carlier (2): CLEANUP: dumpstats: u64 field is an unsigned type. CLEANUP: connection: using internal struct to hold source and dest port. Dragan Dosen (6): MINOR: stream: export the function 'smp_create_src_stkctr' BUG/MINOR: http: url32+src should use the big endian version of url32 BUG/MINOR: http: url32+src should check cli_conn before using it DOC: http: add documentation for url32 and url32+src MINOR: standard: add function "escape_string" BUG/MEDIUM: log: use function "escape_string" instead of "escape_chunk" Emeric Brun (2): BUG/MINOR: peers: some updates are pushed twice after a resync. BUG/MINOR: peers: empty chunks after a resync. Emmanuel Hocdet (2): MEDIUM: ssl: support SNI filters with multicerts MINOR: ssl: crt-list parsing factor Frédéric Lécaille (1): BUG/MINOR: peers: Fix peers data decoding issue Herve COMMOWICK (1): DOC: fix json converter example and error message Hubert Verstraete (2): MINOR: new function my_realloc2 = realloc + free upon failure CLEANUP: fixed some usages of realloc leading to memory leak Joe Williams (1): MINOR: tcp: add further tcp info fetchers Lukas Tribus (1): BUG/MEDIUM: dns: unbreak DNS resolver after header fix Maxime de Roucy (4): MINOR: add list_append_word function MEDIUM: init: use list_append_word in haproxy.c MEDIUM: init: allow directory as argument of -f BUG/MEDIUM: init: don't use environment locale Nenad Merdanovic (2): DOC: Fix typo so fetch is properly parsed by Cyril's converter BUG/MINOR: Fix endiness issue in DNS header creation code Olivier Doucet (1): DOC: minor typo fixes to improve HTML parsing by haproxy-dconv Pavlos Parissis (2): MINOR: systemd: Use variable for config and pidfile paths MINOR: systemd: Perform sanity check on config before reload Remi Gacogne (1): BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params() Roberto Guimaraes (1): BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params() Ruoshan Huang (2): BUG/MINOR: fix http-response set-log-level parsing error MEDIUM: http: implement http-response track-sc* directive Thierry FOURNIER (2): BUG/MEDIUM: lua: the function txn_done() from sample fetches can crash BUG/MEDIUM: lua: the function txn_done() from action wrapper can crash Thierry FOURNIER / OZON.IO (2): DOC: lua: remove old functions BUG/MEDIUM: lua: somme HTTP manipulation functions are called without valid requests Thierry Fournier (4): BUG/MEDIUM: sticktables: segfault in some configuration error cases BUG/MEDIUM: lua: converters doesn't work BUG/MINOR: http: add-header: header name copied twice BUG/MEDIUM: http: add-header: buffer overwritten Thierry Fournier / OZON.IO (1): MINOR: tcp: Return TCP statistics like RTT and RTT variance Vincent Bernat (2): BUG/MAJOR: fix listening IP address storage for frontends BUG/MINOR: fix listening IP address storage for frontends (cont) William Lallemand (9): BUG/MEDIUM: fix risk of segfault with "show tls-keys" MEDIUM: dumpstats: 'show tls-keys' is now able to show secrets DOC: update doc about tls-tickets-keys dump MEDIUM: tcp: add 'set-src' to 'tcp-request connection' MINOR: set the CO_FL_ADDR_FROM_SET flags with 'set-src' MEDIUM: tcp/http: add 'set-src-port' action MEDIUM: tcp/http: new set-dst/set-dst-port actions BUG/MEDIUM: dumpstats: undefined behavior in stats_tlskeys_list() MEDIUM: dumpstats: make stats_tlskeys_list() yield-aware during tls-keys dump Willy Tarreau (46): CLEANUP: config: detect double registration of a config section MINOR: log: add the %Td log-format specifier SCRIPTS: teach git-show-backports how to report upstream commits SCRIPTS: make git-show-backports capable of limiting its history BUG/MAJOR: http: fix breakage of "reqdeny" causing random crashes BUG/MEDIUM: stick-tables: fix breakage in table converters MINOR: stick-table: change all stick-table converters' inputs to SMP_T_ANY BUILD: fix build on Solaris 11 BUG/MEDIUM: config: fix multiple declaration of section parsers BUILD/MEDIUM: rebuild everything when an include file is changed BUILD/MEDIUM: force a full rebuild if some build options change BUILD: ssl: fix typo causing a build failure in the multicert patch BUG/MINOR: init: always ensure that global.rlimit_nofile matches actual limits BUG/MINOR: init: ensure that FD limit is raised to the max allowed BUG/MEDIUM: external-checks: close all FDs right after the fork() BUG/MAJOR: external-checks: use asynchronous signal delivery BUG/MINOR: external-checks: do not unblock undesired signals CLEANUP: external-check: don't block/unblock SIGCHLD when manipulating the list BUG/MINOR: srv-state: fix incorrect output of state file BUG/MINOR: http: fix misleading error message for response captures BUG/BUILD: don't automatically run "make" on "make install" DOC: add missing doc for http-request deny [deny_status <status>] BUG/MEDIUM: http: unbreak uri/header/url_param hashing Revert "BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params()" BUG/MEDIUM: dns: fix alignment issues in the DNS response parser BUG/MINOR: peers: don't count track-sc multiple times on errors BUG/MEDIUM: stream-int: completely detach connection on connect error BUG/MAJOR: compression: initialize avail_in/next_in even during flush BUG/MEDIUM: samples: make smp_dup() always duplicate the sample MINOR: sample: implement smp_is_safe() and smp_make_safe() MINOR: sample: provide smp_is_rw() and smp_make_rw() BUG/MAJOR: server: the "sni" directive could randomly cause trouble BUG/MEDIUM: stick-tables: do not fail on string keys with no allocated size BUG/MEDIUM: stick-table: properly convert binary samples to keys MINOR: sample: use smp_make_rw() in upper/lower converters MINOR: tcp: add dst_is_local and src_is_local BUILD: protocol: fix some build errors on OpenBSD BUILD: log: iovec requires to include sys/uio.h on OpenBSD BUILD: tcp: do not include netinet/ip.h for IP_TTL BUILD: connection: fix build breakage on openbsd due to missing in_systm.h BUILD: checks: remove the last strcat and eliminate a warning on OpenBSD BUILD: tcp: define SOL_TCP when only IPPROTO_TCP exists BUILD: compression: remove a warning when no compression lib is used BUILD: poll: remove unused hap_fd_isset() which causes a warning with clang BUG/MAJOR: stick-counters: possible crash when using sc_trackers with wrong table [RELEASE] Released version 1.7-dev4 mildis (1): BUG/MINOR: ssl: close ssl key file on error

