version 1.7r1

2018/01/18 : 1.7r1 (1.0.0-178.345) - Revert "BUG/MINOR: checks: Don't forget to release the connection on error case." 2017/12/07 : 1.7r1 (1.0.0-178.344) - BUG/MAJOR: http: fix buffer overflow on loguri buffer. - MINOR: log: Add logurilen tunable. 2017/11/13 : 1.7r1 (1.0.0-177.342) - MINOR: server: Handle weight increase in consistent hash. - BUG/MINOR: mailers: Fix a memory leak when email alerts are released - BUG/MINOR: stream-int: don't set MSG_MORE on SHUTW_NOW without AUTO_CLOSE - BUG/MINOR: checks: Don't forget to release the connection on error case. - BUG/MINOR: dns: Fix CLI keyword declaration - BUILD/MINOR: 51d: fix warning when building with 51Degrees release version - DOC: fix some typos - DOC: 51d: Updated git URL and instructions for getting Hash Trie data files. - DOC: 51d: add 51Degrees git URL that points to release version - BUG/MAJOR: stream-int: don't re-arm recv if send fails - BUG/MEDIUM: http: Return an error when url_dec sample converter failed - BUG/MINOR: tcp-check: don't initialize then break a connection starting with a comment - BUG/MEDIUM: tcp-check: don't call tcpcheck_main() from the I/O handlers! - BUG/MINOR: tcp-check: don't quit with pending data in the send buffer - BUG/MEDIUM: tcp-check: properly indicate polling state before performing I/O - BUG/MEDIUM: tcp/http: set-dst-port action broken - BUG/MINOR: contrib/halog: fixing small memory leak - BUG/MINOR: log: fixing small memory leak in error code path. - BUG/MINOR: compression: Check response headers before http-response rules eval - BUG/MEDIUM: compression: Fix check on txn in smp_fetch_res_comp_algo - BUG/MINOR: Lua: The socket may be destroyed when we try to access. - BUG/MEDIUM: http: Close streams for connections closed before a redirect - BUG/MEDIUM: epoll: ensure we always consider HUP and ERR - BUG/MEDIUM: http: Fix a regression bug when a HTTP response is in TUNNEL mode - BUG/MEDIUM: stream: properly set the required HTTP analysers on use-service - BUG/MEDIUM: lua: HTTP services must take care of body-less status codes - BUG/MINOR: lua: Fix bitwise logic for hlua_server_check_* functions. - BUG/MAJOR: http: Fix possible infinity loop in http_sync_(req|res)_state - BUG/MEDIUM: http: Switch HTTP responses in TUNNEL mode when body length is undefined - MINOR: http: Switch requests/responses in TUNNEL mode only by checking txn flags - MINOR: http: Reorder/rewrite checks in http_resync_states 2017/10/06 : 1.7r1 (1.0.0-176.311) - BUG/MEDIUM: connection: remove useless flag CO_FL_DATA_RD_SH 2017/10/04 : 1.7r1 (1.0.0-176.310) - BUG/MEDIUM: cli: fix "show fd" crash when dumping closed FDs - BUILD/MINOR: cli: shut a minor gcc warning in "show fd" - MINOR: peers: Add additional information to stick-table definition messages. 2017/08/28 : 1.7r1 (1.0.0-176.307) 2017/07/31 : 1.7r1 (1.0.0-174.307) - MINOR: cli: add a new "show fd" command - MINOR: listener: add a function to return a listener's state as a string - DOC: fix alphabetical order of "show commands" in management.txt - MINOR: cli: add two general purpose pointers and integers in the CLI struct - MINOR: lua: Add lists of frontends and backends - DOC: lua: Proxy class doc update - MINOR: lua: Add proxy as member of proxy object. - BUG/MINOR: lua: always detach the tcp/http tasks before freeing them - BUG/MINOR: lua: Correctly use INET6_ADDRSTRLEN in Server.get_addr() - BUG/MINOR: lua: Fix Server.get_addr() port values - BUG/MINOR: http: Set the response error state in http_sync_res_state - DOC: Updated 51Degrees git URL to point to a stable version. - BUILD: lua: replace timegm() with my_timegm() to fix build on Solaris 10 - MINOR: tools: add a portable timegm() alternative - DOC: update the list of OpenSSL versions in the README - DOC: update CONTRIBUTING regarding optional parts and message format - BUG/MEDIUM: lua: bad memory access - BUG/MAJOR: lua/socket: resources not detroyed when the socket is aborted - BUG/MINOR: lua: executes the function destroying the Lua session in safe mode - BUG/MINOR: lua: In error case, the safe mode is not removed - BUG/MINOR: peers: peer synchronization issue (with several peers sections). - BUG/MINOR: http: properly handle all 1xx informational responses 2017/07/07 : 1.7r1 (1.0.0-172.285) - BUG/MEDIUM: filters: Be sure to call flt_end_analyze for both channels - BUG/MINOR: http: Don't reset the transaction if there are still data to send - BUG/MINOR: stream: Don't forget to remove CF_WAKE_ONCE flag on response channel - BUG/MEDIUM: map/acl: fix unwanted flags inheritance. - DOC: fix references to the section about time format. - BUG/MAJOR: compression: Be sure to release the compression state in all cases - BUG/MAJOR: map: fix segfault during 'show map/acl' on cli. - BUG/MAJOR: cli: fix custom io_release was crushed by NULL. - BUG/MINOR: stream: flag TASK_WOKEN_RES not set if task in runqueue - BUG/MINOR: log: pin the front connection when front ip/ports are logged - BUG/MINOR: haproxy/cli : fix for solaris/illumos distros for CMSG* macros - SCRIPTS: create-release: enforce GIT_COMMITTER_{NAME|EMAIL} validity - scripts: create-release pass -n to tail - BUG/MAJOR: server: Segfault after parsing server state file. - BUG/MEDIUM: peers: Peers CLOSE_WAIT issue. - BUG/MINOR: http/filters: Be sure to wait if a filter loops in HTTP_MSG_ENDING - BUG/MINOR: acls: Set the right refflag when patterns are loaded from a map - BUG/MINOR: buffers: Fix bi/bo_contig_space to handle full buffers - DOC: fix references to the section about the unix socket - BUG/MEDIUM: cfgparse: Check if tune.http.maxhdr is in the range 1..32767 - BUG/MEDIUM: http: Drop the connection establishment when a redirect is performed - BUG/MINOR: Wrong peer task expiration handling during synchronization processing. - BUG/MEDIUM: unix: never unlink a unix socket from the file system - MINOR: warning on multiple -x - BUG/MEDIUM: fix segfault when no argument to -x option 2017/06/14 : 1.7r1 (1.0.0-171.260) - DOC: Add documentation for new "server-template" keyword. - MINOR: server: Add server_template_init() function to initialize servers from a templates. - MINOR: server: Add 'server-template' new keyword supported in backend sections. - MINOR: server: Extract the code which finalizes server initializations after 'server' lines parsing. - MINOR: server: Extract the code responsible of copying default-server settings. - BUG/MAJOR: Broken parsing for valid keywords provided after 'source' setting. - BUG/MEDIUM: server: Wrong server default CRT filenames initialization. - DOC: server: Add docs for "server" and "default-server" new "no-*" and other settings. - MINOR: server: Add 'no-agent-check' server keyword. - MINOR: server: Make 'default-server' support 'disabled' keyword. - MINOR: server: Make 'default-server' support 'addr' keyword. - MINOR: server: Make 'default-server' support 'sni' keyword. - MINOR: server: Make 'default-server' support 'source' keyword. - MINOR: server: Make 'default-server' support 'namespace' keyword. - MINOR: server: Make 'default-server' support 'tcp-ut' keyword. - MINOR: server: Make 'default-server' support 'ciphers' keyword. - MINOR: server: Make 'default-server' support 'cookie' keyword. - MINOR server: Restrict dynamic cookie check to the same proxy. - CLEANUP: config: Typo in comment. - BUG/MEDIUM server: Fix crash when dynamic is defined, but not key is provided. - MINOR: cli: Let configure the dynamic cookies from the cli. - MINOR: server: Add dynamic session cookies. - MINOR: server: Make 'default-server' support 'observe' keyword. - MINOR: server: Make 'default-server' support 'redir' keyword. - MINOR: server: Make 'default-server' support 'ca-file', 'crl-file' and 'crt' settings. - MINOR: server: Make 'default-server' support 'track' setting. - MINOR: server: Make 'default-server' support 'check' keyword. - MINOR: server: Make 'default-server' support 'verifyhost' setting. - MINOR: server: Make 'default-server' support 'verify' keyword. - CLEANUP: server: code alignement. - MINOR: server: Make 'default-server' support 'send-proxy-v2-ssl*' keywords. - MINOR: server: Make 'default-server' support 'ssl' keyword. - MINOR: server: Make 'default-server' support 'no-ssl*' and 'no-tlsv*' keywords. - CLEANUP: server: code alignement. - MINOR: server: Make 'default-server' support 'force-sslv3' and 'force-tlsv1[0-2]' keywords. - MINOR: server: Make 'default-server' support 'check-ssl' keyword. - MINOR: server: Make 'default-server' support 'send-proxy' and 'send-proxy-v2 keywords. - MINOR: server: Make 'default-server' support 'non-stick' keyword. - CLEANUP: server: code alignement. - MINOR: server: Make 'default-server' support 'check-send-proxy' keyword. - MINOR: server: Make 'default-server' support 'backup' keyword. - MINOR: server: move the use_ssl field out of the ifdef USE_OPENSSL - MINOR: cli: add 'expose-fd listeners' to pass listeners FDs - MINOR: cli: add ACCESS_LVL_MASK to store the access level - MINOR: systemd wrapper: add support for passing the -x option. - MINOR: socket transfer: Set a timeout on the socket. - MINOR: proxy: Don't close FDs if not our proxy. - MINOR: doc: document the -x flag - MINOR: tcp: When binding socket, attempt to reuse one from the old proc. - MINOR: global: Add an option to get the old listening sockets. - MINOR: cli: Add a command to send listening sockets. - BUG/MAJOR: http: call manage_client_side_cookies() before erasing the buffer - BUG/MINOR: Makefile: fix compile error with USE_LUA=1 in ubuntu16.04 - BUG/MEDIUM: lua: segfault if a converter or a sample doesn't return anything - BUG/MAJOR: dns: Broken kqueue events handling (BSD systems). - BUG/MINOR: checks: don't send proxy protocol with agent checks - DOC: update RFC references - BUG/MINOR: http: Fix conditions to clean up a txn and to handle the next request - MINOR/DOC: lua: just precise one thing - BUG/MINOR: hash-balance-factor isn't effective in certain circumstances - MEDIUM: config: don't check config validity when there are fatal errors - BUG/MEDIUM: lua: memory leak - DOC: errloc/errorloc302/errorloc303 missing status codes. - DOC: add layer 4 links/cross reference to "block" keyword. - BUG/MINOR: server: missing default server 'resolvers' setting duplication. - BUG/MINOR: server: don't use "proxy" when px is really meant. - BUG/MAJOR: Use -fwrapv. - BUG/MEDIUM: acl: proprely release unused args in prune_acl_expr() - CLEANUP: logs: typo: simgle => single - MINOR: lua: ensure the memory allocator is used all the time - BUG/MEDIUM: acl: don't free unresolved args in prune_acl_expr() - BUG/MEDIUM: arg: ensure that we properly unlink unresolved arguments on error - BUG/MINOR: arg: don't try to add an argument on failed memory allocation - BUG/MINOR: config: missing goto out after parsing an incorrect ACL character - BUG/MINOR: dns: Wrong address family used when creating IPv6 sockets. - DOC: stick-table is available in frontend sections - DOC: mention lighttpd 1.4.46 implements PROXY - DOC: update sample code for PROXY protocol - DOC: add few comments to examples. - DOC: changed "block"(deprecated) examples to http-request deny 2017/04/10 : 1.7r1 (1.0.0-163.180) 2017/04/07 : 1.7r1 (1.0.0-162.180) - MINOR: config parsing: add warning when log-format/tcplog/httplog is overriden in "defaults" sections - DOC: log-format/tcplog/httplog update - DOC: update the contributing file - DOC: fix parenthesis and add missing "Example" tags - BUG/MINOR: filters: Don't force the stream's wakeup when we wait in flt_end_analyze - BUG/MEDIUM: http: Fix blocked HTTP/1.0 responses when compression is enabled - BUG/MEDIUM: buffers: Fix how input/output data are injected into buffers - BUG/MEDIUM: peers: fix buffer overflow control in intdecode. - BUILD: scripts: fix typo in announce-release error message - BUILD: make the release script use shortlog for the final changelog 2017/03/27 : 1.7r1 (1.0.0-160.170) - MINOR: Add hostname sample fetch - CLEANUP: Replace repeated code to count usable servers with be_usable_srv() - MINOR: Add nbsrv sample converter - BUG/MEDIUM: tcp: don't require privileges to bind to device - MINOR: doc: fix use-server example (imap vs mail) - MINOR: server: irrelevant error message with 'default-server' config file keyword. - BUG/MINOR: cfgparse: loop in tracked servers lists not detected by check_config_validity(). - MEDIUM: global: add a 'hard-stop-after' option to cap the soft-stop time - DOC: Protocol doc: add noop TLV - DOC: Protocol doc: add SSL TLVs, rename CHECKSUM - DOC: Protocol doc: add checksum, TLV type ranges - DOC/MINOR: Fix typos in proxy protocol doc - OPTIM: poll: enable support for POLLRDHUP - BUG/MINOR: raw_sock: always perfom the last recv if RDHUP is not available - MINOR: fd: add a new flag HAP_POLL_F_RDHUP to struct poller - BUG/MEDIUM: stream: fix client-fin/server-fin handling - MINOR: doc: 2.4. Examples should be 2.5. Examples - BUG/MAJOR: http: fix typo in http_apply_redirect_rule - BUG: payload: fix payload not retrieving arbitrary lengths - BUG/MEDIUM: connection: ensure to always report the end of handshakes - BUG/MAJOR: stream-int: do not depend on connection flags to detect connection - BUG/MEDIUM: filters: Fix channels synchronization in flt_end_analyze - BUG/MEDIUM: listener: do not try to rebind another process' socket - CONTRIB: tcploop: use the trash instead of NULL for recv() - CONTRIB: tcploop: fix connect's address length - CONTRIB: tcploop: report action 'K' (kill) in usage message - CONTRIB: tcploop: fix time format to silence build warnings - CONTRIB: tcploop: make it build on FreeBSD - CONTRIB: tcploop: add limits.h to fix build issue with some compilers - BUG/MINOR: checks: attempt clean shutw for SSL check - BUG/MEDIUM: ssl: switchctx should not return SSL_TLSEXT_ERR_ALERT_WARNING - BUG/MAJOR: connection: update CO_FL_CONNECTED before calling the data layer - BUG/MINOR: Fix "get map <map> <value>" CLI command - BUG/MEDIUM: cli: Prevent double free in CLI ACL lookup - BUG/MEDIUM: ssl: Clear OpenSSL error stack after trying to parse OCSP file - BUG/MINOR: spoe: Fix parsing of arguments in spoe-message section - BUG/MINOR: spoe: Fix soft stop handler using a specific id for spoe filters - MINOR: config: warn when some HTTP rules are used in a TCP proxy - MINOR: http: don't close when redirect location doesn't start with "/" - BUG/MEDIUM: config: reject anything but "if" or "unless" after a use-backend rule - MEDIUM: ssl: add new sample-fetch which captures the cipherlist - BUG/MAJOR: lua segmentation fault when the request is like 'GET ?arg=val HTTP/1.1' - MINOR: server: extend the flags to 32 bits - MINOR: doc: Add docs for agent-addr and agent-send CLI commands - MINOR: doc: Add docs for agent-addr configuration variable - MINOR: cli: Add possiblity to change agent config via CLI/socket - MINOR: checks: Add agent-addr config directive - BUG/MINOR: sendmail: The return of vsnprintf is not cleanly tested - BUG/MINOR: http: Return an error when a replace-header rule failed on the response - BUG/MEDIUM: http: Prevent replace-header from overwriting a buffer - BUG/MEDIUM: filters: Do not truncate HTTP response when body length is undefined - BUG/MEDIUM: http: prevent redirect from overwriting a buffer - MINOR: chunks: implement a simple dynamic allocator for trash buffers - BUG/MAJOR: dns: restart sockets after fork() - MINOR: dns: give ability to dns_init_resolvers() to close a socket when requested - BUG/MINOR: lua: Map.end are not reliable because "end" is a reserved keyword - DOC: lua: improve links - BUG/MINOR: unix: fix connect's polling in case no data are scheduled - BUG/MEDIUM: tcp: don't poll for write when connect() succeeds - BUILD: ssl: eliminate warning with OpenSSL 1.1.0 regarding RAND_pseudo_bytes() - BUILD: ssl: silence a warning reported for ERR_remove_state() - BUILD: ssl: fix build on OpenSSL 1.0.0 - MINOR: modules: report more precise errors about module API mismatch - MINOR: modules: Remove Gcc warnings about unused variables - BUILD: modules: Remove modules-config.h from DEP variable to generate .i file - BUILD: modules: Add macors to compute numerical value of a HAPEE version - BUILD: modules: Only define the all target if MODULES isn't defined. - MINOR: Use "500 Internal Server Error" for 500 error/status code message. - MINOR: samples: add xx-hash functions - DOC: lua: Add documentation about variable manipulation from applet - MINOR: lua: give HAProxy variable access to the applets - MINOR: lua: Allow argument for actions - OPTIM/MINOR: config: Optimize fullconn automatic computation loading configuration - OPTIM: stream-int: don't disable polling anymore on DONT_READ - CLEANUP: memory: remove the now unused cli_parse_show_pools() function - MINOR: cli: automatically enable a CLI I/O handler when there's no parser - DOC: cli: show cli sockets - BUG/MINOR: cli: "show cli sockets" would always report process 64 - BUG/MINOR: cli: "show cli sockets" wouldn't list all processes - MEDIUM: cli: 'show cli sockets' list the CLI sockets - MINOR: tcp-rules: check that the listener exists before updating its counters - MINOR: cfgparse: add two new functions to check arguments count - MINOR: haproxy: add a registration for post-deinit functions - MINOR: haproxy: add a registration for post-check functions - MINOR: haproxy: add a registration for build options - CLEANUP: haproxy: statify unexported functions - BUG/MINOR: stream: Fix how backend-specific analyzers are set on a stream - MEDIUM: modules: 'modules list' on the cli shows currently loaded modules - BUILD: modules: strip the MODULE_COPTS before hashing them - BUILD: modules: add make module-copts to show module options - BUILD: modules: take pkg-config out of install-inc - MINOR: modules: fix incorrect API HASH generation with certain awk versions - MODULES: BUILD: modules: Add version of the module in the defines - BUILD: modules: use gawk insteads of awk - BUILD: modules: make modules support optional - MINOR: modules: Don't use constructor/destructor anymore... - MINOR: modules: Terminate properly loaded modules if possible - MINOR: modules: Keep a list of loaded modules to unload them when HAProxy is stopped - MINOR: modules: Register function called after the main config check - MEDIUM: modules: modules: Add memory reservation support for the modules - MEDIUM: modules: modules: Add modules support - BUG/MINOR: Reset errno variable before calling strtol(3) - DOC: add deprecation notice to "block" - MINOR: proto_http.c 502 error txt typo. - BUG/MINOR: ssl: EVP_PKEY must be freed after X509_get_pubkey usage - BUG/MEDIUM: tools: do not force an unresolved address to AF_INET: - MEDIUM: server: disable protocol validations when the server doesn't resolve - MINOR: server: take the destination port from the port field, not the addr - MINOR: tools: make str2sa_range() return the port in a separate argument - MEDIUM: server: split the address and the port into two different fields - BUG/MEDIUM: server: consider AF_UNSPEC as a valid address family - BUG/MINOR: tools: fix off-by-one in port size check - BUG/MINOR: config: emit a warning if http-reuse is enabled with incompatible options - MINOR: connection: add sample fetch "fc_rcvd_proxy" - MINOR: http: custom status reason. - BUG/MAJOR: http: fix risk of getting invalid reports of bad requests - BUILD: scripts: automatically update the branch in version.h when releasing - BUG/MINOR: http: report real parser state in error captures - BUG/MAJOR: channel: Fix the definition order of channel analyzers - BUG/MINOR: sample-fetches/stick-tables: bad type for the sample fetches sc*_get_gpt0 - MINOR: stats: Support "select all" for backend actions - BUG/MINOR: option prefer-last-server must be ignored in some case - BUILD: lua: build failed on FreeBSD. - DOC: Add timings events schemas - BUG/MINOR: systemd: potential zombie processes - BUG/MEDIUM: ssl: for a handshake when server-side SNI changes - BUG/MINOR: backend: nbsrv() should return 0 if backend is disabled - BUG/MINOR: stats: fix be/sessions/current out in typed stats - BUG/MEDIUM: ssl: avoid double free when releasing bind_confs - BUG/MEDIUM: ssl: properly reset the reused_sess during a forced handshake - BUG/MINOR: lua: bad return code - BUG/MINOR: lua: memory leak executing tasks - BUG/MINOR: Fix the sending function in Lua's cosocket - DOC: fix small typo in fe_id (backend instead of frontend) - BUG/MINOR: lua/cli: bad error message - DOC: lua: section declared twice - DOC: lua: documentation about time parser functions - BUG/MINOR: stream-int: automatically release SI_FL_WAIT_DATA on SHUTW_NOW - SCRIPTS: git-show-backports: add -H to use the hash of the commit message - SCRIPTS: git-show-backports: fix a harmless typo - BUG/MEDIUM: lua: In some case, the return of sample-fetches is ignored (2) - BUILD/MEDIUM: Fixing the build using LibreSSL - BUG/MAJOR: Fix how the list of entities waiting for a buffer is handled - BUG/MEDIUM: stream: Save unprocessed events for a stream - MINOR: task: Rename run_queue and run_queue_cur counters - MINOR: applet: Count number of (active) applets - BUG/MINOR: cli: be sure to always warn the cli applet when input buffer is full - DOC: Fix some typo in SPOE documentation - DOC: Add undocumented argument of the trace filter - MINOR: Do not forward the header "Expect: 100-continue" when the option http-buffer-request is set - DOC: lua: Documentation about some entry missing - MINOR: proxy: Add fe_name/be_name fetchers next to existing fe_id/be_id - BUG/MINOR: stats: fix be/sessions/max output in html stats - BUG/MEDIUM: variables: some variable name can hide another ones - DOC: mention that req_tot is for both frontends and backends - BUG/MINOR: http: don't send an extra CRLF after a Set-Cookie in a redirect - DOC: Added 51Degrees conv and fetch functions to documentation. - DOC: Fix map table's format - BUG/MEDIUM: cli: fix "show stat resolvers" and "show tls-keys" - BUG/MINOR: cli: allow the backslash to be escaped on the CLI - BUG/MAJOR: stream: fix session abort on resource shortage - BUG/MINOR: http: Call XFER_DATA analyzer when HTTP txn is switched in tunnel mode - BUG/MINOR: filters: Invert evaluation order of HTTP_XFER_BODY and XFER_DATA analyzers - BUG/MINOR: filters: Protect args in macros HAS_DATA_FILTERS and IS_DATA_FILTER - BUG/MINOR: http: Keep the same behavior between 1.6 and 1.7 for tunneled txn - BUG/MEDIUM: http: Fix tunnel mode when the CONNECT method is used - DOC: Spelling fixes - BUG/MINOR: stats: make field_str() return an empty string on NULL - BUG/MEDIUM: proxy: return "none" and "unknown" for unknown LB algos - BUILD: fix the reported version number

HAPEE-LB 1.7r1 – Changelog
English French German