blob: f7dbf23cf42e0acebc568fe3d52aaab6aaf205a5 [file] [log] [blame]
willy tarreau036e1ce2005-12-17 13:46:33 +01001ChangeLog :
2===========
willy tarreau4302f492005-12-18 01:00:37 +01003
Willy Tarreaue59fcdd2016-11-25 16:39:17 +010042016/11/25 : 1.7.0
5 - SCRIPTS: make publish-release also copy the new SPOE doc
6 - BUILD: http: include types/sample.h in proto_http.h
7 - BUILD: debug/flags: remove test for SF_COMP_READY
8 - CONTRIB: debug/flags: add check for SF_ERR_CHK_PORT
9 - MINOR: lua: add function which return true if the channel is full.
10 - MINOR: lua: add ip addresses and network manipulation function
11 - CONTRIB: tcploop: scriptable TCP I/O for debugging purposes
12 - CONTRIB: tcploop: implement fork()
13 - CONTRIB: tcploop: implement logging when called with -v
14 - CONTRIB: tcploop: update the usage output
15 - CONTRIB: tcploop: support sending plain strings
16 - CONTRIB: tcploop: don't report failed send() or recv()
17 - CONTRIB: tcploop: add basic loops via a jump instruction
18 - BUG/MEDIUM: channel: bad unlikely macro
19 - CLEANUP: lua: move comment
20 - CLEANUP: lua: control executed twice
21 - BUG/MEDIUM: ssl: Store certificate filename in a variable
22 - BUG/MINOR: ssl: Print correct filename when error occurs reading OCSP
23 - CLEANUP: ssl: Remove goto after return dead code
24 - CLEANUP: ssl: Fix bind keywords name in comments
25 - DOC: ssl: Use correct wording for ca-sign-pass
26 - CLEANUP: lua: avoid directly calling getsockname/getpeername()
27 - BUG/MINOR: stick-table: handle out-of-memory condition gracefully
28 - MINOR: cli: add private pointer and release function
29 - MEDIUM: lua: Add cli handler for Lua
30 - BUG/MEDIUM: connection: check the control layer before stopping polling
31 - DEBUG: connection: mark the closed FDs with a value that is easier to detect
32 - BUG/MEDIUM: stick-table: fix regression caused by recent fix for out-of-memory
33 - BUG/MINOR: cli: properly decrement ref count on tables during failed dumps
34 - BUG/MEDIUM: lua: In some case, the return of sample-fetche is ignored
35 - MINOR: filters: Add check_timeouts callback to handle timers expiration on streams
36 - MINOR: spoe: Add 'timeout processing' option to limit time to process an event
37 - MINOR: spoe: Remove useless 'timeout ack' option
38 - MINOR: spoe: Add 'option continue-on-error' statement in spoe-agent section
39 - MINOR: spoe: Add "maxconnrate" and "maxerrrate" statements
40 - MINOR: spoe: Add "option set-on-error" statement
41 - MINOR: stats: correct documentation of process ID for typed output
42 - BUILD: contrib: fix ip6range build on Centos 7
43 - BUILD: fix build on Solaris 10/11
44 - BUG/MINOR: cli: fix pointer size when reporting data/transport layer name
45 - BUG/MINOR: cli: dequeue from the proxy when changing a maxconn
46 - BUG/MINOR: cli: wake up the CLI's task after a timeout update
47 - MINOR: connection: add a few functions to report the data and xprt layers' names
48 - MINOR: connection: add names for transport and data layers
49 - REORG: cli: split dumpstats.c in src/cli.c and src/stats.c
50 - REORG: cli: split dumpstats.h in stats.h and cli.h
51 - REORG: cli: move ssl CLI functions to ssl_sock.c
52 - REORG: cli: move map and acl code to map.c
53 - REORG: cli: move show stat resolvers to dns.c
54 - MINOR: cli: create new function cli_has_level() to validate permissions
55 - MINOR: server: create new function cli_find_server() to find a server
56 - MINOR: proxy: create new function cli_find_frontend() to find a frontend
57 - REORG: cli: move 'set server' to server.c
58 - REORG: cli: move 'show pools' to memory.c
59 - REORG: cli: move 'show servers' to proxy.c
60 - REORG: cli: move 'show sess' to stream.c
61 - REORG: cli: move 'show backend' to proxy.c
62 - REORG: cli: move get/set weight to server.c
63 - REORG: cli: move "show stat" to stats.c
64 - REORG: cli: move "show info" to stats.c
65 - REORG: cli: move dump_text(), dump_text_line(), and dump_binary() to standard.c
66 - REORG: cli: move table dump/clear/set to stick_table.c
67 - REORG: cli: move "show errors" out of cli.c
68 - REORG: cli: make "show env" also use the generic keyword registration
69 - REORG: cli: move "set timeout" to its own handler
70 - REORG: cli: move "clear counters" to stats.c
71 - REORG: cli: move "set maxconn global" to its own handler
72 - REORG: cli: move "set maxconn server" to server.c
73 - REORG: cli: move "set maxconn frontend" to proxy.c
74 - REORG: cli: move "shutdown sessions server" to stream.c
75 - REORG: cli: move "shutdown session" to stream.c
76 - REORG: cli: move "shutdown frontend" to proxy.c
77 - REORG: cli: move "{enable|disable} frontend" to proxy.c
78 - REORG: cli: move "{enable|disable} server" to server.c
79 - REORG: cli: move "{enable|disable} health" to server.c
80 - REORG: cli: move "{enable|disable} agent" to server.c
81 - REORG: cli: move the "set rate-limit" functions to their own parser
82 - CLEANUP: cli: rename STAT_CLI_* to CLI_ST_*
83 - CLEANUP: cli: simplify the request parser a little bit
84 - CLEANUP: cli: remove assignments to st0 and st2 in keyword parsers
85 - BUILD: server: remove a build warning introduced by latest series
86 - BUG/MINOR: log-format: uncatched memory allocation functions
87 - CLEANUP: log-format: useless file and line in json converter
88 - CLEANUP/MINOR: log-format: unexport functions parse_logformat_var_args() and parse_logformat_var()
89 - CLEANUP: log-format: fix return code of the function parse_logformat_var()
90 - CLEANUP: log-format: fix return code of function parse_logformat_var_args()
91 - CLEANUP: log-format: remove unused arguments
92 - MEDIUM: log-format: strict parsing and enable fail
93 - MEDIUM: log-format/conf: take into account the parse_logformat_string() return code
94 - BUILD: ssl: make the SSL layer build again with openssl 0.9.8
95 - BUILD: vars: remove a build warning on vars.c
96 - MINOR: lua: add utility function for check boolean argument
97 - MINOR: lua: Add tokenize function.
98 - BUG/MINOR: conf: calloc untested
99 - MINOR: http/conf: store the use_backend configuration file and line for logs
100 - MEDIUM: log-format: Use standard HAProxy log system to report errors
101 - CLEANUP: sample: report "converter" instead of "conv method" in error messages
102 - BUG: spoe: Fix parsing of SPOE actions in ACK frames
103 - MINOR: cli: make "show stat" support a proxy name
104 - MINOR: cli: make "show errors" support a proxy name
105 - MINOR: cli: make "show errors" capable of dumping only request or response
106 - BUG/MINOR: freq-ctr: make swrate_add() support larger values
107 - CLEANUP: counters: move from 3 types to 2 types
108 - CLEANUP: cfgparse: cascade the warnif_misplaced_* rules
109 - REORG: tcp-rules: move tcp rules processing to their own file
110 - REORG: stkctr: move all the stick counters processing to stick-tables.c
111 - DOC: update the roadmap file with the latest changes
112
Willy Tarreaud5d890b2016-11-09 23:18:17 +01001132016/11/09 : 1.7-dev6
114 - DOC: fix the entry for hash-balance-factor config option
115 - DOC: Fix typo in description of `-st` parameter in man page
116 - CLEANUP: cfgparse: Very minor spelling correction
117 - MINOR: examples: Update haproxy.spec URLs to haproxy.org
118 - BUG/MEDIUM: peers: on shutdown, wake up the appctx, not the stream
119 - BUG/MEDIUM: peers: fix use after free in peer_session_create()
120 - MINOR: peers: make peer_session_forceshutdown() use the appctx and not the stream
121 - MINOR: peers: remove the pointer to the stream
122 - BUG/MEDIUM: systemd-wrapper: return correct exit codes
123 - DOC: stats: provide state details for show servers state
124 - MEDIUM: tools: make str2ip2() preserve existing ports
125 - CLEANUP: tools: make ipcpy() preserve the original port
126 - OPTIM: http: move all http character classs tables into a single one
127 - OPTIM: http: improve parsing performance of long header lines
128 - OPTIM: http: improve parsing performance of long URIs
129 - OPTIM: http: optimize lookup of comma and quote in header values
130 - BUG/MEDIUM: srv-state: properly restore the DRAIN state
131 - BUG/MINOR: srv-state: allow to have both CMAINT and FDRAIN flags
132 - MINOR: server: do not emit warnings/logs/alerts on server state changes at boot
133 - BUG/MEDIUM: servers: properly propagate the maintenance states during startup
134 - MEDIUM: wurfl: add Scientiamobile WURFL device detection module
135 - DOC: move the device detection modules documentation to their own files
136 - CLEANUP: wurfl: reduce exposure in the rest of the code
137 - MEDIUM: ssl: Add support for OpenSSL 1.1.0
138 - MINOR: stream: make option contstats usable again
139 - MEDIUM: tools: make str2sa_range() return the FQDN even when not resolving
140 - MINOR: init: move apply_server_state in haproxy.c before MODE_CHECK
141 - MAJOR: server: postpone address resolution
142 - MINOR: new srv_admin flag: SRV_ADMF_RMAINT
143 - MINOR: server: indicate in the logs when RMAINT is cleared
144 - MINOR: stats: indicate it when a server is down due to resolution
145 - MINOR: server: make srv_set_admin_state() capable of telling why this happens
146 - MINOR: dns: implement extra 'hold' timers.
147 - MAJOR: dns: runtime resolution can change server admin state
148 - MEDIUM: cli: leave the RMAINT state when setting an IP address on the CLI
149 - MEDIUM: server: add a new init-addr server line setting
150 - MEDIUM: server: make use of init-addr
151 - MINOR: server: implement init-addr none
152 - MEDIUM: server: make libc resolution failure non-fatal
153 - MINOR: server: add support for explicit numeric address in init-addr
154 - DOC: add some documentation for the "init-addr" server keyword
155 - MINOR: init: add -dr to ignore server address resolution failures
156 - MEDIUM: server: do not restrict anymore usage of IP address from the state file
157 - BUG: vars: Fix 'set-var' converter because of a typo
158 - CLEANUP: remove last references to 'ruleset' section
159 - MEDIUM: filters: Add attch/detach and stream_set_backend callbacks
160 - MINOR: filters: Update filters documentation accordingly to recent changes
161 - MINOR: filters: Call stream_set_backend callbacks before updating backend stats
162 - MINOR: filters: Remove backend filters attached to a stream only for HTTP streams
163 - MINOR: flt_trace: Add hexdump option to dump forwarded data
164 - MINOR: cfgparse: Add functions to backup and restore registered sections
165 - MINOR: cfgparse: Parse scope lines and save the last one parsed
166 - REORG: sample: move code to release a sample expression in sample.c
167 - MINOR: vars: Allow '.' in variable names
168 - MINOR: vars: Add vars_set_by_name_ifexist function
169 - MEDIUM: vars: Add a per-process scope for variables
170 - MINOR: vars: Add 'unset-var' action/converter
171 - MAJOR: spoe: Add an experimental Stream Processing Offload Engine
172 - MINOR: spoe: add random ip-reputation service as SPOA example
173 - MINOR: spoe/checks: Add support for SPOP health checks
174 - DOC: update ROADMAP file
175
Willy Tarreau608efa12016-10-25 22:22:00 +02001762016/10/25 : 1.7-dev5
177 - MINOR: cfgparse: few memory leaks fixes.
178 - MEDIUM: log: Decompose %Tq in %Th %Ti %TR
179 - CLEANUP: logs: remove unused log format field definitions
180 - BUILD/MAJOR:updated 51d Trie implementation to incorperate latest update to 51Degrees.c
181 - BUG/MAJOR: stream: properly mark the server address as unset on connect retry
182 - CLEANUP: proto_http: Removing useless variable assignation
183 - CLEANUP: dumpstats: Removing useless variables allocation
184 - CLEANUP: dns: Removing usless variable & assignation
185 - BUG/MINOR: payload: fix SSLv2 version parser
186 - MINOR: cli: allow the semi-colon to be escaped on the CLI
187 - MINOR: cli: change a server health check port through the stats socket
188 - BUG/MINOR: Fix OSX compilation errors
189 - MAJOR: check: find out which port to use for health check at run time
190 - MINOR: server: introduction of 3 new server flags
191 - MINOR: new update_server_addr_port() function to change both server's ADDR and service PORT
192 - MINOR: cli: ability to change a server's port
193 - CLEANUP/MINOR dns: comment do not follow up code update
194 - MINOR: chunk: new strncat function
195 - MINOR: dns: wrong DNS_MAX_UDP_MESSAGE value
196 - MINOR: dns: new MAX values
197 - MINOR: dns: new macro to compute DNS header size
198 - MINOR: dns: new DNS structures to store received packets
199 - MEDIUM: dns: new DNS response parser
200 - MINOR: dns: query type change when last record is a CNAME
201 - MINOR: dns: proper domain name validation when receiving DNS response
202 - MINOR: dns: comments in types/dns.h about structures endianness
203 - BUG/MINOR: displayed PCRE version is running release
204 - MINOR: show Built with PCRE version
205 - MINOR: show Running on zlib version
206 - MEDIUM: make SO_REUSEPORT configurable
207 - MINOR: enable IP_BIND_ADDRESS_NO_PORT on backend connections
208 - BUG/MEDIUM: http/compression: Fix how chunked data are copied during the HTTP body parsing
209 - BUG/MINOR: stats: report the correct conn_time in backend's html output
210 - BUG/MEDIUM: dns: don't randomly crash on out-of-memory
211 - MINOR: Add fe_req_rate sample fetch
212 - MEDIUM: peers: Fix a peer stick-tables synchronization issue.
213 - MEDIUM: cli: register CLI keywords with cli_register_kw()
214 - BUILD: Make use of accept4() on OpenBSD.
215 - MINOR: tcp: make set-src/set-src-port and set-dst/set-dst-port commutative
216 - DOC: fix missed entry for "set-{src,dst}{,-port}"
217 - BUG/MINOR: vars: use sess and not s->sess in action_store()
218 - BUG/MINOR: vars: make smp_fetch_var() more robust against misuses
219 - BUG/MINOR: vars: smp_fetch_var() doesn't depend on HTTP but on the session
220 - MINOR: stats: output dcon
221 - CLEANUP: tcp rules: mention everywhere that tcp-conn rules are L4
222 - MINOR: counters: add new fields for denied_sess
223 - MEDIUM: tcp: add registration and processing of TCP L5 rules
224 - MINOR: stats: emit dses
225 - DOC: document tcp-request session
226 - MINOR: ssl: add debug traces
227 - BUILD/CLEANUP: ssl: Check BIO_reset() return code
228 - BUG/MINOR: ssl: Check malloc return code
229 - BUG/MINOR: ssl: prevent multiple entries for the same certificate
230 - BUG/MINOR: systemd: make the wrapper return a non-null status code on error
231 - BUG/MINOR: systemd: always restore signals before execve()
232 - BUG/MINOR: systemd: check return value of calloc()
233 - MINOR: systemd: report it when execve() fails
234 - BUG/MEDIUM: systemd: let the wrapper know that haproxy has completed or failed
235 - MINOR: proxy: add 'served' field to proxy, equal to total of all servers'
236 - MINOR: backend: add hash-balance-factor option for hash-type consistent
237 - MINOR: server: compute a "cumulative weight" to allow chash balancing to hit its target
238 - MEDIUM: server: Implement bounded-load hash algorithm
239 - SCRIPTS: make git-show-backports also dump a "git show" command
240 - MINOR: build: Allow linking to device-atlas library file
241 - MINOR: stats: Escape equals sign on socket dump
242
Willy Tarreau41d5e3a2016-08-14 12:25:21 +02002432016/08/14 : 1.7-dev4
244 - MINOR: add list_append_word function
245 - MEDIUM: init: use list_append_word in haproxy.c
246 - MEDIUM: init: allow directory as argument of -f
247 - CLEANUP: config: detect double registration of a config section
248 - MINOR: log: add the %Td log-format specifier
249 - MEDIUM: filters: Move HTTP headers filtering in its own callback
250 - MINOR: filters: Simplify calls to analyzers using 2 new macros
251 - MEDIUM: filters: Add pre and post analyzer callbacks
252 - DOC: filters: Update the filters documentation accordingly to recent changes
253 - BUG/MEDIUM: init: don't use environment locale
254 - SCRIPTS: teach git-show-backports how to report upstream commits
255 - SCRIPTS: make git-show-backports capable of limiting its history
256 - BUG/MAJOR: fix listening IP address storage for frontends
257 - BUG/MINOR: fix listening IP address storage for frontends (cont)
258 - DOC: Fix typo so fetch is properly parsed by Cyril's converter
259 - BUG/MAJOR: http: fix breakage of "reqdeny" causing random crashes
260 - BUG/MEDIUM: stick-tables: fix breakage in table converters
261 - MINOR: stick-table: change all stick-table converters' inputs to SMP_T_ANY
262 - BUG/MEDIUM: dns: unbreak DNS resolver after header fix
263 - BUILD: fix build on Solaris 11
264 - BUG/MEDIUM: config: fix multiple declaration of section parsers
265 - BUG/MEDIUM: stats: show servers state may show an servers from another backend
266 - BUG/MEDIUM: fix risk of segfault with "show tls-keys"
267 - MEDIUM: dumpstats: 'show tls-keys' is now able to show secrets
268 - DOC: update doc about tls-tickets-keys dump
269 - MEDIUM: tcp: add 'set-src' to 'tcp-request connection'
270 - MINOR: set the CO_FL_ADDR_FROM_SET flags with 'set-src'
271 - MEDIUM: tcp/http: add 'set-src-port' action
272 - MEDIUM: tcp/http: new set-dst/set-dst-port actions
273 - BUG/MEDIUM: sticktables: segfault in some configuration error cases
274 - BUILD/MEDIUM: rebuild everything when an include file is changed
275 - BUILD/MEDIUM: force a full rebuild if some build options change
276 - BUG/MEDIUM: lua: converters doesn't work
277 - BUG/MINOR: http: add-header: header name copied twice
278 - BUG/MEDIUM: http: add-header: buffer overwritten
279 - BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params()
280 - MINOR: stream: export the function 'smp_create_src_stkctr'
281 - BUG/MEDIUM: dumpstats: undefined behavior in stats_tlskeys_list()
282 - MEDIUM: dumpstats: make stats_tlskeys_list() yield-aware during tls-keys dump
283 - BUG/MINOR: http: url32+src should use the big endian version of url32
284 - BUG/MINOR: http: url32+src should check cli_conn before using it
285 - DOC: http: add documentation for url32 and url32+src
286 - BUG/MINOR: fix http-response set-log-level parsing error
287 - MINOR: systemd: Use variable for config and pidfile paths
288 - MINOR: systemd: Perform sanity check on config before reload
289 - MEDIUM: ssl: support SNI filters with multicerts
290 - MINOR: ssl: crt-list parsing factor
291 - BUILD: ssl: fix typo causing a build failure in the multicert patch
292 - MINOR: listener: add the "accept-netscaler-cip" option to the "bind" keyword
293 - MINOR: tcp: add "tcp-request connection expect-netscaler-cip layer4"
294 - BUG/MINOR: init: always ensure that global.rlimit_nofile matches actual limits
295 - BUG/MINOR: init: ensure that FD limit is raised to the max allowed
296 - BUG/MEDIUM: external-checks: close all FDs right after the fork()
297 - BUG/MAJOR: external-checks: use asynchronous signal delivery
298 - BUG/MINOR: external-checks: do not unblock undesired signals
299 - CLEANUP: external-check: don't block/unblock SIGCHLD when manipulating the list
300 - BUG/MEDIUM: filters: Fix data filtering when data are modified
301 - BUG/MINOR: filters: Fix HTTP parsing when a filter loops on data forwarding
302 - BUG/MINOR: srv-state: fix incorrect output of state file
303 - BUG/MINOR: ssl: close ssl key file on error
304 - BUG/MINOR: http: fix misleading error message for response captures
305 - BUG/BUILD: don't automatically run "make" on "make install"
306 - DOC: add missing doc for http-request deny [deny_status <status>]
307 - CLEANUP: dumpstats: u64 field is an unsigned type.
308 - BUG/MEDIUM: http: unbreak uri/header/url_param hashing
309 - BUG/MINOR: Rework slightly commit 9962f8fc to clean code and avoid mistakes
310 - MINOR: new function my_realloc2 = realloc + free upon failure
311 - CLEANUP: fixed some usages of realloc leading to memory leak
312 - Revert "BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params()"
313 - CLEANUP: connection: using internal struct to hold source and dest port.
314 - DOC: spelling fixes
315 - BUG/MINOR: ssl: fix potential memory leak in ssl_sock_load_dh_params()
316 - BUG/MEDIUM: dns: fix alignment issues in the DNS response parser
317 - BUG/MINOR: Fix endiness issue in DNS header creation code
318 - BUG/MEDIUM: lua: the function txn_done() from sample fetches can crash
319 - BUG/MEDIUM: lua: the function txn_done() from action wrapper can crash
320 - MEDIUM: http: implement http-response track-sc* directive
321 - BUG/MINOR: peers: Fix peers data decoding issue
322 - BUG/MINOR: peers: don't count track-sc multiple times on errors
323 - MINOR: standard: add function "escape_string"
324 - BUG/MEDIUM: log: use function "escape_string" instead of "escape_chunk"
325 - MINOR: tcp: Return TCP statistics like RTT and RTT variance
326 - DOC: lua: remove old functions
327 - BUG/MEDIUM: lua: somme HTTP manipulation functions are called without valid requests
328 - DOC: fix json converter example and error message
329 - BUG/MEDIUM: stream-int: completely detach connection on connect error
330 - DOC: minor typo fixes to improve HTML parsing by haproxy-dconv
331 - BUILD: make proto_tcp.c compatible with musl library
332 - BUG/MAJOR: compression: initialize avail_in/next_in even during flush
333 - BUG/MEDIUM: samples: make smp_dup() always duplicate the sample
334 - MINOR: sample: implement smp_is_safe() and smp_make_safe()
335 - MINOR: sample: provide smp_is_rw() and smp_make_rw()
336 - BUG/MAJOR: server: the "sni" directive could randomly cause trouble
337 - BUG/MEDIUM: stick-tables: do not fail on string keys with no allocated size
338 - BUG/MEDIUM: stick-table: properly convert binary samples to keys
339 - MINOR: sample: use smp_make_rw() in upper/lower converters
340 - MINOR: tcp: add dst_is_local and src_is_local
341 - BUG/MINOR: peers: some updates are pushed twice after a resync.
342 - BUILD: protocol: fix some build errors on OpenBSD
343 - BUILD: log: iovec requires to include sys/uio.h on OpenBSD
344 - BUILD: tcp: do not include netinet/ip.h for IP_TTL
345 - BUILD: connection: fix build breakage on openbsd due to missing in_systm.h
346 - BUILD: checks: remove the last strcat and eliminate a warning on OpenBSD
347 - BUILD: tcp: define SOL_TCP when only IPPROTO_TCP exists
348 - BUILD: compression: remove a warning when no compression lib is used
349 - BUILD: poll: remove unused hap_fd_isset() which causes a warning with clang
350 - MINOR: tcp: add further tcp info fetchers
351 - BUG/MINOR: peers: empty chunks after a resync.
352 - BUG/MAJOR: stick-counters: possible crash when using sc_trackers with wrong table
353 - MINOR: standard.c: ipcmp() function to compare 2 IP addresses stored in 2 struct sockaddr_storage
354 - MINOR: standard.c: ipcpy() function to copy an IP address from a struct sockaddr_storage into an other one
355 - MAJOR: listen section: don't use first bind port anymore when no server ports are provided
356
Willy Tarreau7d1b48f2016-05-10 15:36:58 +02003572016/05/10 : 1.7-dev3
358 - MINOR: sample: Moves ARGS underlying type from 32 to 64 bits.
359 - BUG/MINOR: log: Don't use strftime() which can clobber timezone if chrooted
360 - BUILD: namespaces: fix a potential build warning in namespaces.c
361 - MINOR: da: Using ARG12 macro for the sample fetch and the convertor.
362 - DOC: add encoding to json converter example
363 - BUG/MINOR: conf: "listener id" expects integer, but its not checked
364 - DOC: Clarify tunes.vars.xxx-max-size settings
365 - CLEANUP: chunk: adding NULL check to chunk_dup allocation.
366 - CLEANUP: connection: fix double negation on memcmp()
367 - BUG/MEDIUM: peers: fix incorrect age in frequency counters
368 - BUG/MEDIUM: Fix RFC5077 resumption when more than TLS_TICKETS_NO are present
369 - BUG/MAJOR: Fix crash in http_get_fhdr with exactly MAX_HDR_HISTORY headers
370 - BUG/MINOR: lua: can't load external libraries
371 - BUG/MINOR: prevent the dump of uninitialized vars
372 - CLEANUP: map: it seems that the map were planed to be chained
373 - MINOR: lua: move class registration facilities
374 - MINOR: lua: remove some useless checks
375 - CLEANUP: lua: Remove two same functions
376 - MINOR: lua: refactor the Lua object registration
377 - MINOR: lua: precise message when a critical error is catched
378 - MINOR: lua: post initialization
379 - MINOR: lua: Add internal function which strip spaces
380 - MINOR: lua: convert field to lua type
381 - DOC: "addr" parameter applies to both health and agent checks
382 - DOC: timeout client: pointers to timeout http-request
383 - DOC: typo on stick-store response
384 - DOC: stick-table: amend paragraph blaming the loss of table upon reload
385 - DOC: typo: ACL subdir match
386 - DOC: typo: maxconn paragraph is wrong due to a wrong buffer size
387 - DOC: regsub: parser limitation about the inability to use closing square brackets
388 - DOC: typo: req.uri is now replaced by capture.req.uri
389 - DOC: name set-gpt0 mismatch with the expected keyword
390 - MINOR: http: sample fetch which returns unique-id
391 - MINOR: dumpstats: extract stats fields enum and names
392 - MINOR: dumpstats: split stats_dump_info_to_buffer() in two parts
393 - MINOR: dumpstats: split stats_dump_fe_stats() in two parts
394 - MINOR: dumpstats: split stats_dump_li_stats() in two parts
395 - MINOR: dumpstats: split stats_dump_sv_stats() in two parts
396 - MINOR: dumpstats: split stats_dump_be_stats() in two parts
397 - MINOR: lua: dump general info
398 - MINOR: lua: add class proxy
399 - MINOR: lua: add class server
400 - MINOR: lua: add class listener
401 - BUG/MEDIUM: stick-tables: some sample-fetch doesn't work in the connection state.
402 - MEDIUM: proxy: use dynamic allocation for error dumps
403 - CLEANUP: remove unneeded casts
404 - CLEANUP: uniformize last argument of malloc/calloc
405 - DOC: fix "needed" typo
406 - BUG/MINOR: dumpstats: fix write to global chunk
407 - BUG/MINOR: dns: inapropriate way out after a resolution timeout
408 - BUG/MINOR: dns: trigger a DNS query type change on resolution timeout
409 - CLEANUP: proto_http: few corrections for gcc warnings.
410 - BUG/MINOR: DNS: resolution structure change
411 - BUG/MINOR : allow to log cookie for tarpit and denied request
412 - BUG/MEDIUM: ssl: rewind the BIO when reading certificates
413 - OPTIM/MINOR: session: abort if possible before connecting to the backend
414 - DOC: http: rename the unique-id sample and add the documentation
415 - BUG/MEDIUM: trace.c: rdtsc() is defined in two files
416 - BUG/MEDIUM: channel: fix miscalculation of available buffer space (2nd try)
417 - BUG/MINOR: server: risk of over reading the pref_net array.
418 - BUG/MINOR: cfgparse: couple of small memory leaks.
419 - BUG/MEDIUM: sample: initialize the pointer before parse_binary call.
420 - DOC: fix discrepancy in the example for http-request redirect
421 - MINOR: acl: Add predefined METH_DELETE, METH_PUT
422 - CLEANUP: .gitignore cleanup
423 - DOC: Clarify IPv4 address / mask notation rules
424 - CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept()
425 - BUG/MEDIUM: fix maxaccept computation on per-process listeners
426 - BUG/MINOR: listener: stop unbound listeners on startup
427 - BUG/MINOR: fix maxaccept computation according to the frontend process range
428 - TESTS: add blocksig.c to run tests with all signals blocked
429 - MEDIUM: unblock signals on startup.
430 - MINOR: filters: Print the list of existing filters during HA startup
431 - MINOR: filters: Typo in an error message
432 - MINOR: filters: Filters must define the callbacks struct during config parsing
433 - DOC: filters: Add filters documentation
434 - BUG/MEDIUM: channel: don't allow to overwrite the reserve until connected
435 - BUG/MEDIUM: channel: incorrect polling condition may delay event delivery
436 - BUG/MEDIUM: channel: fix miscalculation of available buffer space (3rd try)
437 - BUG/MEDIUM: log: fix risk of segfault when logging HTTP fields in TCP mode
438 - MINOR: Add ability for agent-check to set server maxconn
439 - CLEANUP: Use server_parse_maxconn_change_request for maxconn CLI updates
440 - MINOR: filters: add opaque data
441 - BUG/MEDIUM: lua: protects the upper boundary of the argument list for converters/fetches.
442 - MINOR: lua: migrate the argument mask to 64 bits type.
443 - BUG/MINOR: dumpstats: Fix the "Total bytes saved" counter in backends stats
444 - BUG/MINOR: log: fix a typo that would cause %HP to log <BADREQ>
445 - BUG/MEDIUM: http: fix incorrect reporting of server errors
446 - MINOR: channel: add new function channel_congested()
447 - BUG/MEDIUM: http: fix risk of CPU spikes with pipelined requests from dead client
448 - BUG/MAJOR: channel: fix miscalculation of available buffer space (4th try)
449 - BUG/MEDIUM: stream: ensure the SI_FL_DONT_WAKE flag is properly cleared
450 - BUG/MEDIUM: channel: fix inconsistent handling of 4GB-1 transfers
451 - BUG/MEDIUM: stats: show servers state may show an empty or incomplete result
452 - BUG/MEDIUM: stats: show backend may show an empty or incomplete result
453 - MINOR: stats: fix typo in help messages
454 - MINOR: stats: show stat resolvers missing in the help message
455 - BUG/MINOR: dns: fix DNS header definition
456 - BUG/MEDIUM: dns: fix alignment issue when building DNS queries
457 - CLEANUP: don't ignore scripts in .gitignore
458 - BUILD: add a few release and backport scripts in scripts/
459
Willy Tarreau8234f6d2016-03-14 00:10:05 +01004602016/03/14 : 1.7-dev2
461 - DOC: lua: fix lua API
462 - DOC: mailers: typo in 'hostname' description
463 - DOC: compression: missing mention of libslz for compression algorithm
464 - BUILD/MINOR: regex: missing header
465 - BUG/MINOR: stream: bad return code
466 - DOC: lua: fix somme errors and add implicit types
467 - MINOR: lua: add set/get priv for applets
468 - BUG/MINOR: http: fix several off-by-one errors in the url_param parser
469 - BUG/MINOR: http: Be sure to process all the data received from a server
470 - MINOR: filters/http: Use a wrapper function instead of stream_int_retnclose
471 - BUG/MINOR: chunk: make chunk_dup() always check and set dst->size
472 - DOC: ssl: fixed some formatting errors in crt tag
473 - MINOR: chunks: ensure that chunk_strcpy() adds a trailing zero
474 - MINOR: chunks: add chunk_strcat() and chunk_newstr()
475 - MINOR: chunk: make chunk_initstr() take a const string
476 - MEDIUM: tools: add csv_enc_append() to preserve the original chunk
477 - MINOR: tools: make csv_enc_append() always start at the first byte of the chunk
478 - MINOR: lru: new function to delete <nb> least recently used keys
479 - DOC: add Ben Shillito as the maintainer of 51d
480 - BUG/MINOR: 51d: Ensures a unique domain for each configuration
481 - BUG/MINOR: 51d: Aligns Pattern cache implementation with HAProxy best practices.
482 - BUG/MINOR: 51d: Releases workset back to pool.
483 - BUG/MINOR: 51d: Aligned const pointers to changes in 51Degrees.
484 - CLEANUP: 51d: Aligned if statements with HAProxy best practices and removed casts from malloc.
485 - MINOR: rename master process name in -Ds (systemd mode)
486 - DOC: fix a few spelling mistakes
487 - DOC: fix "workaround" spelling
488 - BUG/MINOR: examples: Fixing haproxy.spec to remove references to .cfg files
489 - MINOR: fix the return type for dns_response_get_query_id() function
490 - MINOR: server state: missing LF (\n) on error message printed when parsing server state file
491 - BUG/MEDIUM: dns: no DNS resolution happens if no ports provided to the nameserver
492 - BUG/MAJOR: servers state: server port is erased when dns resolution is enabled on a server
493 - BUG/MEDIUM: servers state: server port is used uninitialized
494 - BUG/MEDIUM: config: Adding validation to stick-table expire value.
495 - BUG/MEDIUM: sample: http_date() doesn't provide the right day of the week
496 - BUG/MEDIUM: channel: fix miscalculation of available buffer space.
497 - MEDIUM: pools: add a new flag to avoid rounding pool size up
498 - BUG/MEDIUM: buffers: do not round up buffer size during allocation
499 - BUG/MINOR: stream: don't force retries if the server is DOWN
500 - BUG/MINOR: counters: make the sc-inc-gpc0 and sc-set-gpt0 touch the table
501 - MINOR: unix: don't mention free ports on EAGAIN
502 - BUG/CLEANUP: CLI: report the proper field states in "show sess"
503 - MINOR: stats: send content-length with the redirect to allow keep-alive
504 - BUG: stream_interface: Reuse connection even if the output channel is empty
505 - DOC: remove old tunnel mode assumptions
506 - BUG/MAJOR: http-reuse: fix risk of orphaned connections
507 - BUG/MEDIUM: http-reuse: do not share private connections across backends
508 - BUG/MINOR: ssl: Be sure to use unique serial for regenerated certificates
509 - BUG/MINOR: stats: fix missing comma in stats on agent drain
510 - MAJOR: filters: Add filters support
511 - MINOR: filters: Do not reset stream analyzers if the client is gone
512 - REORG: filters: Prepare creation of the HTTP compression filter
513 - MAJOR: filters/http: Rewrite the HTTP compression as a filter
514 - MEDIUM: filters: Use macros to call filters callbacks to speed-up processing
515 - MEDIUM: filters: remove http_start_chunk, http_last_chunk and http_chunk_end
516 - MEDIUM: filters: Replace filter_http_headers callback by an analyzer
517 - MEDIUM: filters/http: Move body parsing of HTTP messages in dedicated functions
518 - MINOR: filters: Add stream_filters structure to hide filters info
519 - MAJOR: filters: Require explicit registration to filter HTTP body and TCP data
520 - MINOR: filters: Remove unused or useless stuff and do small optimizations
521 - MEDIUM: filters: Optimize the HTTP compression for chunk encoded response
522 - MINOR: filters/http: Slightly update the parsing of chunks
523 - MINOR: filters/http: Forward remaining data when a channel has no "data" filters
524 - MINOR: filters: Add an filter example
525 - MINOR: filters: Extract proxy stuff from the struct filter
526 - MINOR: map: Add regex matching replacement
527 - BUG/MINOR: lua: unsafe initialization
528 - DOC: lua: fix somme errors
529 - MINOR: lua: file dedicated to unsafe functions
530 - MINOR: lua: add "now" time function
531 - MINOR: standard: add RFC HTTP date parser
532 - MINOR: lua: Add date functions
533 - MINOR: lua: move common function
534 - MINOR: lua: merge function
535 - MINOR: lua: Add concat class
536 - MINOR: standard: add function "escape_chunk"
537 - MEDIUM: log: add a new log format flag "E"
538 - DOC: add server name at rate-limit sessions example
539 - BUG/MEDIUM: ssl: fix off-by-one in ALPN list allocation
540 - BUG/MEDIUM: ssl: fix off-by-one in NPN list allocation
541 - DOC: LUA: fix some typos and syntax errors
542 - MINOR: cli: add a new "show env" command
543 - MEDIUM: config: allow to manipulate environment variables in the global section
544 - MEDIUM: cfgparse: reject incorrect 'timeout retry' keyword spelling in resolvers
545 - MINOR: mailers: increase default timeout to 10 seconds
546 - MINOR: mailers: use <CRLF> for all line endings
547 - BUG/MAJOR: lua: segfault using Concat object
548 - DOC: lua: copyrights
549 - MINOR: common: mask conversion
550 - MEDIUM: dns: extract options
551 - MEDIUM: dns: add a "resolve-net" option which allow to prefer an ip in a network
552 - MINOR: mailers: make it possible to configure the connection timeout
553 - BUG/MAJOR: lua: applets can't sleep.
554 - BUG/MINOR: server: some prototypes are renamed
555 - BUG/MINOR: lua: Useless copy
556 - BUG/MEDIUM: stats: stats bind-process doesn't propagate the process mask correctly
557 - BUG/MINOR: server: fix the format of the warning on address change
558 - CLEANUP: server: add "const" to some message strings
559 - MINOR: server: generalize the "updater" source
560 - BUG/MEDIUM: chunks: always reject negative-length chunks
561 - BUG/MINOR: systemd: ensure we don't miss signals
562 - BUG/MINOR: systemd: report the correct signal in debug message output
563 - BUG/MINOR: systemd: propagate the correct signal to haproxy
564 - MINOR: systemd: ensure a reload doesn't mask a stop
565 - BUG/MEDIUM: cfgparse: wrong argument offset after parsing server "sni" keyword
566 - CLEANUP: stats: Avoid computation with uninitialized bits.
567 - CLEANUP: pattern: Ignore unknown samples in pat_match_ip().
568 - CLEANUP: map: Avoid memory leak in out-of-memory condition.
569 - BUG/MINOR: tcpcheck: fix incorrect list usage resulting in failure to load certain configs
570 - BUG/MAJOR: samples: check smp->strm before using it
571 - MINOR: sample: add a new helper to initialize the owner of a sample
572 - MINOR: sample: always set a new sample's owner before evaluating it
573 - BUG/MAJOR: vars: always retrieve the stream and session from the sample
574 - CLEANUP: payload: remove useless and confusing nullity checks for channel buffer
575 - BUG/MINOR: ssl: fix usage of the various sample fetch functions
576 - MINOR: stats: create fields types suitable for all CSV output data
577 - MINOR: stats: add all the "show info" fields in a table
578 - MEDIUM: stats: fill all the show info elements prior to displaying them
579 - MINOR: stats: add a function to emit fields into a chunk
580 - MINOR: stats: add stats_dump_info_fields() to dump one field per line
581 - MEDIUM: stats: make use of stats_dump_info_fields() for "show info"
582 - MINOR: stats: add a declaration of all stats fields
583 - MINOR: stats: don't hard-code the CSV fields list anymore
584 - MINOR: stats: create stats fields storage and CSV dump function
585 - MEDIUM: stats: convert stats_dump_fe_stats() to use stats_dump_fields_csv()
586 - MEDIUM: stats: make stats_dump_fe_stats() use stats fields for HTML dump
587 - MEDIUM: stats: convert stats_dump_li_stats() to use stats_dump_fields_csv()
588 - MEDIUM: stats: make stats_dump_li_stats() use stats fields for HTML dump
589 - MEDIUM: stats: convert stats_dump_be_stats() to use stats_dump_fields_csv()
590 - MEDIUM: stats: make stats_dump_be_stats() use stats fields for HTML dump
591 - MEDIUM: stats: convert stats_dump_sv_stats() to use stats_dump_fields_csv()
592 - MEDIUM: stats: make stats_dump_sv_stats() use the stats field for HTML
593 - MEDIUM: stats: move the server state coloring logic to the server dump function
594 - MINOR: stats: do not use srv->admin & STATS_ADMF_MAINT in HTML dumps
595 - MINOR: stats: do not check srv->state for SRV_ST_STOPPED in HTML dumps
596 - MINOR: stats: make CSV report server check status only when enabled
597 - MINOR: stats: only report backend's down time if it has servers
598 - MINOR: stats: prepend '*' in front of the check status when in progress
599 - MINOR: stats: make HTML stats dump rely on the table for the check status
600 - MINOR: stats: add agent_status, agent_code, agent_duration to output
601 - MINOR: stats: add check_desc and agent_desc to the output fields
602 - MINOR: stats: add check and agent's health values in the output
603 - MEDIUM: stats: make the HTML server state dump use the CSV states
604 - MEDIUM: stats: only report observe errors when observe is set
605 - MEDIUM: stats: expose the same flags for CLI and HTTP accesses
606 - MEDIUM: stats: report server's address in the CSV output
607 - MEDIUM: stats: report the cookie value in the server & backend CSV dumps
608 - MEDIUM: stats: compute the color code only in the HTML form
609 - MEDIUM: stats: report the listeners' address in the CSV output
610 - MEDIUM: stats: make it possible to report the WAITING state for listeners
611 - REORG: stats: dump the frontend's HTML stats via a generic function
612 - REORG: stats: dump the socket stats via the generic function
613 - REORG: stats: dump the server stats via the generic function
614 - REORG: stats: dump the backend stats via the generic function
615 - MEDIUM: stats: add a new "mode" column to report the proxy mode
616 - MINOR: stats: report the load balancing algorithm in CSV output
617 - MINOR: stats: add 3 fields to report the frontend-specific connection stats
618 - MINOR: stats: report number of intercepted requests for frontend and backends
619 - MINOR: stats: introduce stats_dump_one_line() to dump one stats line
620 - CLEANUP: stats: make stats_dump_fields_html() not rely on proxy anymore
621 - MINOR: stats: add ST_SHOWADMIN to pass the admin info in the regular flags
622 - MINOR: stats: make stats_dump_fields_html() not use &trash by default
623 - MINOR: stats: add functions to emit typed fields into a chunk
624 - MEDIUM: stats: support "show info typed" on the CLI
625 - MEDIUM: stats: implement a typed output format for stats
626 - DOC: document the "show info typed" and "show stat typed" output formats
627 - MINOR: cfgparse: warn when uid parameter is not a number
628 - MINOR: cfgparse: warn when gid parameter is not a number
629 - BUG/MINOR: standard: Avoid free of non-allocated pointer
630 - BUG/MINOR: pattern: Avoid memory leak on out-of-memory condition
631 - CLEANUP: http: fix a build warning introduced by a recent fix
632 - BUG/MINOR: log: GMT offset not updated when entering/leaving DST
633
Willy Tarreaucb928252015-12-20 23:33:18 +01006342015/12/20 : 1.7-dev1
635 - DOC: specify that stats socket doc (section 9.2) is in management
636 - BUILD: install only relevant and existing documentation
637 - CLEANUP: don't ignore debian/ directory if present
638 - BUG/MINOR: dns: parsing error of some DNS response
639 - BUG/MEDIUM: namespaces: don't fail if no namespace is used
640 - BUG/MAJOR: ssl: free the generated SSL_CTX if the LRU cache is disabled
641 - MEDIUM: dns: Don't use the ANY query type
642 - BUILD: ssl: fix build error introduced in commit 7969a3 with OpenSSL < 1.0.0
643 - DOC: fix a typo for a "deviceatlas" keyword
644 - FIX: small typo in an example using the "Referer" header
645 - MINOR: cli: ability to set per-server maxconn
646 - DEBUG/MINOR: memory: add a build option to disable memory pools sharing
647 - DEBUG/MEDIUM: memory: optionally protect free data in pools
648 - DEBUG/MEDIUM: memory: add optional control pool memory operations
649 - MEDIUM: memory: add accounting for failed allocations
650 - BUG/MEDIUM: config: count memory limits on 64 bits, not 32
651 - BUG/MAJOR: dns: first DNS response packet not matching queried hostname may lead to a loop
652 - BUG/MINOR: dns: unable to parse CNAMEs response
653 - BUG/MINOR: examples/haproxy.init: missing brace in quiet_check()
654 - DOC: deviceatlas: more example use cases.
655 - MINOR: config: allow IPv6 bracketed literals
656 - BUG/BUILD: replace haproxy-systemd-wrapper with $(EXTRA) in install-bin.
657 - BUILD: add Haiku as supported target.
658 - BUG/MAJOR: http: don't requeue an idle connection that is already queued
659 - DOC: typo on capture.res.hdr and capture.req.hdr
660 - BUG/MINOR: dns: check for duplicate nameserver id in a resolvers section was missing
661 - CLEANUP: use direction names in place of numeric values
662 - BUG/MEDIUM: lua: sample fetches based on response doesn't work
663 - MINOR: check: add agent-send server parameter
664 - BUG/MINOR: http rule: http capture 'id' rule points to a non existing id
665 - BUG/MINOR: server: check return value of fgets() in apply_server_state()
666 - BUG/MINOR: acl: don't use record layer in req_ssl_ver
667 - BUILD: freebsd: double declaration
668 - BUG/MEDIUM: lua: clean output buffer
669 - BUILD: check for libressl to be able to build against it
670 - DOC: lua-api/index.rst small example fixes, spelling correction.
671 - DOC: lua: architecture and first steps
672 - DOC: relation between timeout http-request and option http-buffer-request
673 - BUILD: Make deviceatlas require PCRE
674 - BUG: http: do not abort keep-alive connections on server timeout
675 - BUG/MEDIUM: http: switch the request channel to no-delay once done.
676 - BUG/MINOR: lua: don't force-sslv3 LUA's SSL socket
677 - BUILD/MINOR: http: proto_http.h needs sample.h
678 - BUG/MEDIUM: http: don't enable auto-close on the response side
679 - BUG/MEDIUM: stream: fix half-closed timeout handling
680 - CLEANUP: compression: don't allocate DEFAULT_MAXZLIBMEM without USE_ZLIB
681 - BUG/MEDIUM: cli: changing compression rate-limiting must require admin level
682 - BUG/MEDIUM: sample: urlp can't match an empty value
683 - BUILD: dumpstats: silencing warning for printf format specifier / time_t
684 - CLEANUP: proxy: calloc call inverted arguments
685 - MINOR: da: silent logging by default and displaying DeviceAtlas support if built.
686 - BUG/MEDIUM: da: stop DeviceAtlas processing in the convertor if there is no input.
687 - DOC: Edited 51Degrees section of README/
688 - BUG/MEDIUM: checks: email-alert not working when declared in defaults
689 - BUG/MINOR: checks: email-alert causes a segfault when an unknown mailers section is configured
690 - BUG/MINOR: checks: typo in an email-alert error message
691 - BUG/MINOR: tcpcheck: conf parsing error when no port configured on server and last rule is a CONNECT with no port
692 - BUG/MINOR: tcpcheck: conf parsing error when no port configured on server and first rule(s) is (are) COMMENT
693 - BUG/MEDIUM: http: fix http-reuse when frontend and backend differ
694 - DOC: prefer using http-request/response over reqXXX/rspXXX directives
695 - CLEANUP: haproxy: using _GNU_SOURCE instead of __USE_GNU macro.
696 - MINOR: ssl: Added cert_key_and_chain struct
697 - MEDIUM: ssl: Added support for creating SSL_CTX with multiple certs
698 - MINOR: ssl: Added multi cert support for crt-list config keyword
699 - MEDIUM: ssl: Added multi cert support for loading crt directories
700 - MEDIUM: ssl: Added support for Multi-Cert OCSP Stapling
701 - BUILD: ssl: set SSL_SOCK_NUM_KEYTYPES with openssl < 1.0.2
702 - MINOR: config: make tune.recv_enough configurable
703 - BUG/MEDIUM: config: properly adjust maxconn with nbproc when memmax is forced
704 - DOC: ssl: Adding docs for Multi-Cert bundling
705 - BUG/MEDIUM: peers: table entries learned from a remote are pushed to others after a random delay.
706 - BUG/MEDIUM: peers: old stick table updates could be repushed.
707 - MINOR: lua: service/applet can have access to the HTTP headers when a POST is received
708 - REORG/MINOR: lua: convert boolean "int" to bitfield
709 - BUG/MEDIUM: lua: Lua applets must not fetch samples using http_txn
710 - BUG/MINOR: lua: Lua applets must not use http_txn
711 - BUG/MEDIUM: lua: Forbid HTTP applets from being called from tcp rulesets
712 - BUG/MAJOR: lua: Do not force the HTTP analysers in use-services
713 - CLEANUP: lua: bad error messages
714 - CONTRIB: initiate a debugging suite to make debugging easier
715
Willy Tarreau991b4782015-10-13 21:48:10 +02007162015/10/13 : 1.7-dev0
717 - exact copy of 1.6.0
718
Willy Tarreau844028b2015-10-13 18:52:22 +02007192015/10/13 : 1.6.0
720 - BUG/MINOR: Handle interactive mode in cli handler
721 - DOC: global section missing parameters
722 - DOC: backend section missing parameters
723 - DOC: stats paramaters available in frontend
724 - MINOR: lru: do not allocate useless memory in lru64_lookup
725 - BUG/MINOR: http: Add OPTIONS in supported http methods (found by find_http_meth)
726 - BUG/MINOR: ssl: fix management of the cache where forged certificates are stored
727 - MINOR: ssl: Release Servers SSL context when HAProxy is shut down
728 - MINOR: ssl: Read the file used to generate certificates in any order
729 - MINOR: ssl: Add support for EC for the CA used to sign generated certificates
730 - MINOR: ssl: Add callbacks to set DH/ECDH params for generated certificates
731 - BUG/MEDIUM: logs: fix time zone offset format in RFC5424
732 - BUILD: Fix the build on OSX (htonll/ntohll)
733 - BUILD: enable build on Linux/s390x
734 - BUG/MEDIUM: lua: direction test failed
735 - MINOR: lua: fix a spelling error in some error messages
736 - CLEANUP: cli: ensure we can never double-free error messages
737 - BUG/MEDIUM: lua: force server-close mode on Lua services
738 - MEDIUM: init: support more command line arguments after pid list
739 - MEDIUM: init: support a list of files on the command line
740 - MINOR: debug: enable memory poisonning to use byte 0
741 - BUILD: ssl: fix build error introduced by recent commit
742 - BUG/MINOR: config: make the stats socket pass the correct proxy to the parsers
743 - MEDIUM: server: implement TCP_USER_TIMEOUT on the server
744 - DOC: mention the "namespace" options for bind and server lines
745 - DOC: add the "management" documentation
746 - DOC: move the stats socket documentation from config to management
747 - MINOR: examples: update haproxy.spec to mention new docs
748 - DOC: mention management.txt in README
749 - DOC: remove haproxy-{en,fr}.txt
750 - BUILD: properly report when USE_ZLIB and USE_SLZ are used together
751 - MINOR: init: report use of libslz instead of "no compression"
752 - CLEANUP: examples: remove some obsolete and confusing files
753 - CLEANUP: examples: remove obsolete configuration file samples
754 - CLEANUP: examples: fix the example file content-sw-sample.cfg
755 - CLEANUP: examples: update sample file option-http_proxy.cfg
756 - CLEANUP: examples: update sample file ssl.cfg
757 - CLEANUP: tests: move a test file from examples/ to tests/
758 - CLEANUP: examples: shut up warnings in transparent proxy example
759 - CLEANUP: tests: removed completely obsolete test files
760 - DOC: update ROADMAP to remove what was done in 1.6
761 - BUG/MEDIUM: pattern: fixup use_after_free in the pat_ref_delete_by_id
762
Willy Tarreau8c1ad712015-10-06 12:13:56 +02007632015/10/06 : 1.6-dev7
764 - MINOR: cli: Dump all resolvers stats if no resolver section is given
765 - BUG: config: external-check command validation is checking for incorrect arguments.
766 - DOC: documentation format cleanups
767 - DOC: lua: few typos.
768 - BUG/MEDIUM: str2ip: make getaddrinfo() consider local address selection policy
769 - BUG/MEDIUM: logs: segfault writing to log from Lua
770 - DOC: fix lua use-service example
771 - MINOR: payload: add support for tls session ticket ext
772 - MINOR: lua: remove the run flag
773 - MEDIUM: lua: change the timeout execution
774 - MINOR: lua: rename the tune.lua.applet-timeout
775 - DOC: lua: update Lua doc
776 - DOC: lua: update doc according with the last Lua changes
777 - MINOR: http/tcp: fill the avalaible actions
778 - DOC: reorder misplaced res.ssl_hello_type in the doc
779 - BUG/MINOR: tcp: make silent-drop always force a TCP reset
780 - CLEANUP: tcp: silent-drop: only drain the connection when quick-ack is disabled
781 - BUILD: tcp: use IPPROTO_IP when SOL_IP is not available
782 - BUILD: server: fix build warnings introduced by load-server-state
783 - BUG/MEDIUM: server: fix misuse of format string in load-server-state's warnings
784
Willy Tarreaue7ae6562015-09-28 23:46:27 +02007852015/09/28 : 1.6-dev6
786 - BUG/MAJOR: can't enable a server through the stat socket
787 - MINOR: server: Macro definition for server-state
788 - MINOR: cli: new stats socket command: show servers state
789 - DOC: stats socket command: show servers state
790 - MINOR: config: new global directive server-state-base
791 - DOC: global directive server-state-base
792 - MINOR: config: new global section directive: server-state-file
793 - DOC: new global directive: server-state-file
794 - MINOR: config: new backend directives: load-server-state-from-file and server-state-file-name
795 - DOC: load-server-state-from-file
796 - MINOR: init: server state loaded from file
797 - MINOR: server: startup slowstart task when using seamless reload of HAProxy
798 - MINOR: cli: new stats socket command: show backend
799 - DOC: servers state seamless reload example
800 - BUG: dns: can't connect UDP socket on FreeBSD
801 - MINOR: cfgparse: New function cfg_unregister_sections()
802 - MINOR: chunk: New function free_trash_buffers()
803 - BUG/MEDIUM: main: Freeing a bunch of static pointers
804 - MINOR: proto_http: Externalisation of previously internal functions
805 - MINOR: global: Few new struct fields for da module
806 - MAJOR: da: Update of the DeviceAtlas API module
807 - DOC: DeviceAtlas new keywords
808 - DOC: README: DeviceAtlas sample configuration updates
809 - MEDIUM: log: replace sendto() with sendmsg() in __send_log()
810 - MEDIUM: log: use a separate buffer for the header and for the message
811 - MEDIUM: logs: remove the hostname, tag and pid part from the logheader
812 - MEDIUM: logs: add support for RFC5424 header format per logger
813 - MEDIUM: logs: add a new RFC5424 log-format for the structured-data
814 - DOC: mention support for the RFC5424 syslog message format
815 - MEDIUM: logs: have global.log_send_hostname not contain the trailing space
816 - MEDIUM: logs: pass the trailing "\n" as an iovec
817 - BUG/MEDIUM: peers: some table updates are randomly not pushed.
818 - BUG/MEDIUM: peers: same table updates re-pushed after a re-connect
819 - BUG/MINOR: fct peer_prepare_ackmsg should not use trash.
820 - MINOR: http: made CHECK_HTTP_MESSAGE_FIRST accessible to other functions
821 - MINOR: global: Added new fields for 51Degrees device detection
822 - DOC: Added more explanation for 51Degrees V3.2
823 - BUILD: Changed 51Degrees option to support V3.2
824 - MAJOR: 51d: Upgraded to support 51Degrees V3.2 and new features
825 - MINOR: 51d: Improved string handling for LRU cache
826 - DOC: add references to rise/fall for the fastinter explanation
827 - MINOR: support cpu-map feature through the compile option USE_CPU_AFFINITY on FreeBSD
828 - BUG/MAJOR: lua: potential unexpected aborts()
829 - BUG/MINOR: lua: breaks the log message if his size exceed one buffer
830 - MINOR: action: add private configuration
831 - MINOR: action: add reference to the original keywork matched for the called parser.
832 - MINOR: lua: change actions registration
833 - MEDIUM: proto_http: smp_prefetch_http initialize txn
834 - MINOR: channel: rename function chn_sess to chn_strm
835 - CLEANUP: lua: align defines
836 - MINOR: http: export http_get_path() function
837 - MINOR: http: export the get_reason() function
838 - MINOR: http: export function http_msg_analyzer()
839 - MINOR: http: split initialization
840 - MINOR: lua: reset pointer after use
841 - MINOR: lua: identify userdata objects
842 - MEDIUM: lua: use the function lua_rawset in place of lua_settable
843 - BUG/MAJOR: lua: segfault after the channel data is modified by some Lua action.
844 - CLEANUP: lua: use calloc in place of malloc
845 - BUG/MEDIUM: lua: longjmp function must be unregistered
846 - BUG/MEDIUM: lua: forces a garbage collection
847 - BUG/MEDIUM: lua: wakeup task on bad conditions
848 - MINOR: standard: avoid DNS resolution from the function str2sa_range()
849 - MINOR: lua: extend socket address to support non-IP families
850 - MINOR: lua/applet: the cosocket applet should use appctx_wakeup in place of task_wakeup
851 - BUG/MEDIUM: lua: socket destroy before reading pending data
852 - MEDIUM: lua: change the GC policy
853 - OPTIM/MEDIUM: lua: executes the garbage collector only when using cosocket
854 - BUG/MEDIUM: lua: don't reset undesired flags in hlua_ctx_resume
855 - MINOR: applet: add init function
856 - MINOR: applet: add an execution timeout
857 - MINOR: stream/applet: add use-service action
858 - MINOR: lua: add AppletTCP class and service
859 - MINOR: lua: add AppletHTTP class and service
860 - DOC: lua: some documentation update
861 - DOC: add the documentation about internal circular lists
862 - DOC: add a CONTRIBUTING file
863 - DOC: add a MAINTAINERS file
864 - BUG/MAJOR: peers: fix a crash when stopping peers on unbound processes
865 - DOC: update coding-style to reference checkpatch.pl
866 - BUG/MEDIUM: stick-tables: fix double-decrement of tracked entries
867 - BUG/MINOR: args: add name for ARGT_VAR
868 - DOC: add more entries to MAINTAINERS
869 - DOC: add more entries to MAINTAINERS
870 - CLEANUP: stream-int: remove obsolete function si_applet_call()
871 - BUG/MAJOR: cli: do not dereference strm_li()->proto->name
872 - BUG/MEDIUM: http: do not dereference strm_li(stream)
873 - BUG/MEDIUM: proxy: do not dereference strm_li(stream)
874 - BUG/MEDIUM: stream: do not dereference strm_li(stream)
875 - MINOR: stream-int: use si_release_endpoint() to close idle conns
876 - BUG/MEDIUM: payload: make req.payload and payload_lv aware of dynamic buffers
877 - BUG/MEDIUM: acl: always accept match "found"
878 - MINOR: applet: rename applet_runq to applet_active_queue
879 - BUG/MAJOR: applet: use a separate run queue to maintain list integrity
880 - MEDIUM: stream-int: split stream_int_update_conn() into si- and conn-specific parts
881 - MINOR: stream-int: implement a new stream_int_update() function
882 - MEDIUM: stream-int: factor out the stream update functions
883 - MEDIUM: stream-int: call stream_int_update() from si_update()
884 - MINOR: stream-int: export stream_int_update_*
885 - MINOR: stream-int: move the applet_pause call out of the stream updates
886 - MEDIUM: stream-int: clean up the conditions to enable reading in si_conn_wake_cb
887 - MINOR: stream-int: implement the stream_int_notify() function
888 - MEDIUM: stream-int: use the same stream notification function for applets and conns
889 - MEDIUM: stream-int: completely remove stream_int_update_embedded()
890 - MINOR: stream-int: rename si_applet_done() to si_applet_wake_cb()
891 - BUG/MEDIUM: applet: fix reporting of broken write situation
892 - BUG/MINOR: stats: do not call cli_release_handler 3 times
893 - BUG/MEDIUM: cli: properly handle closed output
894 - MINOR: cli: do not call the release handler on internal error.
895 - BUG/MEDIUM: stream-int: avoid double-call to applet->release
896 - DEBUG: add p_malloc() to return a poisonned memory area
897 - CLEANUP: lua: remove unneeded memset(0) after calloc()
898 - MINOR: lua: use the proper applet wakeup mechanism
899 - BUG/MEDIUM: lua: better fix for the protocol check
900 - BUG/MEDIUM: lua: properly set the target on the connection
901 - MEDIUM: actions: pass a new "flags" argument to custom actions
902 - MEDIUM: actions: add new flag ACT_FLAG_FINAL to notify about last call
903 - MEDIUM: http: pass ACT_FLAG_FINAL to custom actions
904 - MEDIUM: lua: only allow actions to yield if not in a final call
905 - DOC: clarify how to make use of abstract sockets in socat
906 - CLEANUP: config: make the errorloc/errorfile messages less confusing
907 - MEDIUM: action: add a new flag ACT_FLAG_FIRST
908 - BUG/MINOR: config: check that tune.bufsize is always positive
909 - MEDIUM: config: set tune.maxrewrite to 1024 by default
910 - DOC: add David Carlier as maintainer of da.c
911 - DOC: fix some broken unexpected unicode chars in the Lua doc.
912 - BUG/MEDIUM: proxy: ignore stopped peers
913 - BUG/MEDIUM: proxy: do not wake stopped proxies' tasks during soft_stop()
914 - MEDIUM: init: completely deallocate unused peers
915 - BUG/MEDIUM: tcp: fix inverted condition to call custom actions
916 - DOC: remove outdated actions lists on tcp-request/response
917 - MEDIUM: tcp: add new tcp action "silent-drop"
918 - DOC: add URLs to optional libraries in the README
919
Willy Tarreaua02e8a62015-09-14 12:23:10 +02009202015/09/14 : 1.6-dev5
921 - MINOR: dns: dns_resolution structure update: time_t to unsigned int
922 - BUG/MEDIUM: dns: DNS resolution doesn't start
923 - BUG/MAJOR: dns: dns client resolution infinite loop
924 - MINOR: dns: coding style update
925 - MINOR: dns: new bitmasks to use against DNS flags
926 - MINOR: dns: dns_nameserver structure update: new counter for truncated response
927 - MINOR: dns: New DNS response analysis code: DNS_RESP_TRUNCATED
928 - MEDIUM: dns: handling of truncated response
929 - MINOR: DNS client query type failover management
930 - MINOR: dns: no expected DNS record type found
931 - MINOR: dns: new flag to report that no IP can be found in a DNS response packet
932 - BUG/MINOR: DNS request retry counter used for retry only
933 - DOC: DNS documentation updated
934 - MEDIUM: actions: remove ACTION_STOP
935 - BUG/MEDIUM: lua: outgoing connection was broken since 1.6-dev2 (bis)
936 - BUG/MINOR: lua: last log character truncated.
937 - CLEANUP: typo: bad indent
938 - CLEANUP: actions: missplaced includes
939 - MINOR: build: missing header
940 - CLEANUP: lua: Merge log functions
941 - BUG/MAJOR: http: don't manipulate the server connection if it's killed
942 - BUG/MINOR: http: remove stupid HTTP_METH_NONE entry
943 - BUG/MAJOR: http: don't call http_send_name_header() after an error
944 - MEDIUM: tools: make str2sa_range() optionally return the FQDN
945 - BUG/MINOR: tools: make str2sa_range() report unresolvable addresses
946 - BUG/MEDIUM: dns: use the correct server hostname when resolving
947
Willy Tarreau61d301f2015-08-30 00:17:17 +02009482015/08/30 : 1.6-dev4
949 - MINOR: log: Add log-format variable %HQ, to log HTTP query strings
950 - DOC: typo in 'redirect', 302 code meaning
951 - DOC: typos in tcp-check expect examples
952 - DOC: resolve-prefer default value and default-server update
953 - MINOR: DNS counters: increment valid counter
954 - BUG/MEDIUM: DNS resolution response parsing broken
955 - MINOR: server: add new SRV_ADMF_CMAINT flag
956 - MINOR: server SRV_ADMF_CMAINT flag doesn't imply SRV_ADMF_FMAINT
957 - BUG/MEDIUM: dns: wrong first time DNS resolution
958 - BUG/MEDIUM: lua: Lua tasks fail to start.
959 - BUILD: add USE_LUA to BUILD_OPTIONS when it's used
960 - DOC/MINOR: fix OpenBSD versions where haproxy works
961 - MINOR: 51d: unable to start haproxy without "51degrees-data-file"
962 - BUG/MEDIUM: peers: fix wrong message id on stick table updates acknowledgement.
963 - BUG/MAJOR: peers: fix current table pointer not re-initialized on session release.
964 - BUILD: ssl: Allow building against libssl without SSLv3.
965 - DOC: clarify some points about SSL and the proxy protocol
966 - DOC: mention support for RFC 5077 TLS Ticket extension in starter guide
967 - BUG/MEDIUM: mailer: DATA part must be terminated with <CRLF>.<CRLF>
968 - DOC: match several lua configuration option names to those implemented in code
969 - MINOR cfgparse: Correct the mailer warning text to show the right names to the user
970 - BUG/MINOR: ssl: TLS Ticket Key rotation broken via socket command
971 - MINOR: stream: initialize the current_rule field to NULL on stream init
972 - BUG/MEDIUM: lua: timeout error with converters, wrapper and actions.
973 - CLEANUP: proto_http: remove useless initialisation
974 - CLEANUP: http/tcp actions: remove the scope member
975 - BUG/MINOR: proto_tcp: custom action continue is ignored
976 - MINOR: proto_tcp: add session in the action prototype
977 - MINOR: vars: reduce the code size of some wrappers
978 - MINOR: Move http method enum from proto_http to sample
979 - MINOR: sample: Add ipv6 to ipv4 and sint to ipv6 casts
980 - MINOR: sample/proto_tcp: export "smp_fetch_src"
981 - MEDIUM: cli: rely on the map's output type instead of the sample type
982 - BUG/MEDIUM: stream: The stream doen't inherit SC from the session
983 - BUG/MEDIUM: vars: segfault during the configuration parsing
984 - BUG/MEDIUM: stick-tables: refcount error after copying SC for the session to the stream
985 - BUG/MEDIUM: lua: bad error processing
986 - MINOR: samples: rename a struct from sample_storage to sample_data
987 - MINOR: samples: rename some struct member from "smp" to "data"
988 - MEDIUM: samples: Use the "struct sample_data" in the "struct sample"
989 - MINOR: samples: extract the anonymous union and create the union sample_value
990 - MINOR: samples: rename union from "data" to "u"
991 - MEDIUM: 51degrees: Adapt the 51Degrees library
992 - MINOR: samples: data assignation simplification
993 - MEDIUM: pattern/map: Maps can returns various types
994 - MINOR: map: The map can return IPv4 and IPv6
995 - MEDIUM: actions: Merge (http|tcp)-(request|reponse) action structs
996 - MINOR: actions: Remove the data opaque pointer
997 - MINOR: lua: use the hlua_rule type in place of opaque type
998 - MINOR: vars: use the vars types as argument in place of opaque type
999 - MINOR: proto_http: use an "expr" type in place of generic opaque type.
1000 - MINOR: proto_http: replace generic opaque types by real used types for the actions on thr request line
1001 - MINOR: proto_http: replace generic opaque types by real used types in "http_capture"
1002 - MINOR: proto_http: replace generic opaque types by real used types in "http_capture" by id
1003 - MEDIUM: track-sc: Move the track-sc configuration storage in the union
1004 - MEDIUM: capture: Move the capture configuration storage in the union
1005 - MINOR: actions: add "from" information
1006 - MINOR: actions: remove the mark indicating the last entry in enum
1007 - MINOR: actions: Declare all the embedded actions in the same header file
1008 - MINOR: actions: change actions names
1009 - MEDIUM: actions: Add standard return code for the action API
1010 - MEDIUM: actions: Merge (http|tcp)-(request|reponse) keywords structs
1011 - MINOR: proto_tcp: proto_tcp.h is now useles
1012 - MINOR: actions: mutualise the action keyword lookup
1013 - MEDIUM: actions: Normalize the return code of the configuration parsers
1014 - MINOR: actions: Remove wrappers
1015 - MAJOR: stick-tables: use sample types in place of dedicated types
1016 - MEDIUM: stick-tables: use the sample type names
1017 - MAJOR: stick-tables: remove key storage from the key struct
1018 - MEDIUM: stick-tables: Add GPT0 in the stick tables
1019 - MINOR: stick-tables: Add GPT0 access
1020 - MINOR: stick-tables: Add GPC0 actions
1021 - BUG/MEDIUM: lua: the lua fucntion Channel:close() causes a segfault
1022 - DOC: ssl: missing LF
1023 - MINOR: lua: add core.done() function
1024 - DOC: fix function name
1025 - BUG/MINOR: lua: in some case a sample may remain undefined
1026 - DOC: fix "http_action_set_req_line()" comments
1027 - MINOR: http: Action for manipulating the returned status code.
1028 - MEDIUM: lua: turns txn:close into txn:done
1029 - BUG/MEDIUM: lua: cannot process more Lua hooks after a "done()" function call
1030 - BUILD: link with libdl if needed for Lua support
1031 - CLEANUP: backend: factor out objt_server() in connect_server()
1032 - MEDIUM: backend: don't call si_alloc_conn() when we reuse a valid connection
1033 - MEDIUM: stream-int: simplify si_alloc_conn()
1034 - MINOR: stream-int: add new function si_detach_endpoint()
1035 - MINOR: server: add a list of private idle connections
1036 - MINOR: connection: add a new list member in the connection struct
1037 - MEDIUM: stream-int: queue idle connections at the server
1038 - MINOR: stream-int: make si_idle_conn() only accept valid connections
1039 - MINOR: server: add a list of already used idle connections
1040 - MINOR: connection: add a new flag CO_FL_PRIVATE
1041 - MINOR: config: add new setting "http-reuse"
1042 - MAJOR: backend: initial work towards connection reuse
1043 - MAJOR: backend: improve the connection reuse mechanism
1044 - MEDIUM: backend: implement "http-reuse safe"
1045 - MINOR: server: add a list of safe, already reused idle connections
1046 - MEDIUM: backend: add the "http-reuse aggressive" strategy
1047 - DOC: document the new http-reuse directive
1048 - DOC: internals: document next steps for HTTP connection reuse
1049 - DOC: mention that %ms is left-padded with zeroes.
1050 - MINOR: init: indicate to check 'bind' lines when no listeners were found.
1051 - MAJOR: http: remove references to appsession
1052 - CLEANUP: config: remove appsession initialization
1053 - CLEANUP: appsession: remove appsession.c and sessionhash.c
1054 - CLEANUP: tests: remove sessionhash_test.c and test-cookie-appsess.cfg
1055 - CLEANUP: proxy: remove last references to appsession
1056 - CLEANUP: appsession: remove the last include files
1057 - DOC: remove documentation about appsession
1058 - CLEANUP: .gitignore: ignore more test files
1059 - CLEANUP: .gitignore: finally ignore everything but what is known.
1060 - MEDIUM: config: emit a warning on a frontend without listener
1061 - DOC: add doc/internals/entities-v2.txt
1062 - DOC: add doc/linux-syn-cookies.txt
1063 - DOC: add design thoughts on HTTP/2
1064 - DOC: add some thoughts on connection sharing for HTTP/2
1065 - DOC: add design thoughts on dynamic buffer allocation
1066 - BUG/MEDIUM: counters: ensure that src_{inc,clr}_gpc0 creates a missing entry
1067 - DOC: add new file intro.txt
1068 - MAJOR: tproxy: remove support for cttproxy
1069 - BUG/MEDIUM: lua: outgoing connection was broken since 1.6-dev2
1070 - DOC: lua: replace txn:close with txn:done in lua-api
1071 - DOC: intro: minor updates and fixes
1072 - DOC: intro: fix too long line.
1073 - DOC: fix example of http-request using ssl_fc_session_id
1074 - BUG/MEDIUM: lua: txn:done() still causes a segfault in TCP mode
1075 - CLEANUP: lua: fix some indent issues
1076 - BUG/MEDIUM: lua: fix a segfault in txn:done() if called twice
1077 - DOC: lua: mention than txn:close was renamed txn:done.
1078
Willy Tarreau50bdda62015-07-22 17:32:56 +020010792015/07/22 : 1.6-dev3
1080 - CLEANUP: sample: generalize sample_fetch_string() as sample_fetch_as_type()
1081 - MEDIUM: http: Add new 'set-src' option to http-request
1082 - DOC usesrc root privileges requirments
1083 - BUG/MINOR: dns: wrong time unit for some DNS default parameters
1084 - MINOR: proxy: bit field for proxy_find_best_match diff status
1085 - MINOR: server: new server flag: SRV_F_FORCED_ID
1086 - MINOR: server: server_find functions: id, name, best_match
1087 - DOC: dns: fix chapters syntax
1088 - BUILD/MINOR: tools: rename popcount to my_popcountl
1089 - BUILD: add netbsd TARGET
1090 - MEDIUM: 51Degrees code refactoring and cleanup
1091 - MEDIUM: 51d: add LRU-based cache on User-Agent string detection
1092 - DOC: add notes about the "51degrees-cache-size" parameter
1093 - BUG/MEDIUM: 51d: possible incorrect operations on smp->data.str.str
1094 - BUG/MAJOR: connection: fix TLV offset calculation for proxy protocol v2 parsing
1095 - MINOR: Add sample fetch to detect Supported Elliptic Curves Extension
1096 - BUG/MINOR: payload: Add volatile flag to smp_fetch_req_ssl_ec_ext
1097 - BUG/MINOR: lua: type error in the arguments wrapper
1098 - CLEANUP: vars: remove unused struct
1099 - BUG/MINOR: http/sample: gmtime/localtime can fail
1100 - MINOR: standard: add 64 bits conversion functions
1101 - MAJOR: sample: converts uint and sint in 64 bits signed integer
1102 - MAJOR: arg: converts uint and sint in sint
1103 - MEDIUM: sample: switch to saturated arithmetic
1104 - MINOR: vars: returns variable content
1105 - MEDIUM: vars/sample: operators can use variables as parameter
1106 - BUG/MINOR: ssl: fix smp_fetch_ssl_fc_session_id
1107 - BUILD/MINOR: lua: fix a harmless build warning
1108 - BUILD/MINOR: stats: fix build warning due to condition always true
1109 - BUG/MAJOR: lru: fix unconditional call to free due to unexpected semi-colon
1110 - BUG/MEDIUM: logs: fix improper systematic use of quotes with a few tags
1111 - BUILD/MINOR: lua: ensure that hlua_ctx_destroy is properly defined
1112 - BUG/MEDIUM: lru: fix possible memory leak when ->free() is used
1113 - MINOR: vars: make the accounting not depend on the stream
1114 - MEDIUM: vars: move the session variables to the session, not the stream
1115 - BUG/MEDIUM: vars: do not freeze the connection when the expression cannot be fetched
1116 - BUG/MAJOR: buffers: make the buffer_slow_realign() function respect output data
1117 - BUG/MAJOR: tcp: tcp rulesets were still broken
1118 - MINOR: stats: improve compression stats reporting
1119 - MINOR: ssl: make self-generated certs also work with raw IPv6 addresses
1120 - CLEANUP: ssl: make ssl_sock_generated_cert_serial() take a const
1121 - CLEANUP: ssl: make ssl_sock_generate_certificate() use ssl_sock_generated_cert_serial()
1122 - BUG/MINOR: log: missing some ARGC_* entries in fmt_directives()
1123 - MINOR: args: add new context for servers
1124 - MINOR: stream: maintain consistence between channel_forward and HTTP forward
1125 - MINOR: ssl: provide ia function to set the SNI extension on a connection
1126 - MEDIUM: ssl: add sni support on the server lines
1127 - CLEANUP: stream: remove a useless call to si_detach()
1128 - CLEANUP: stream-int: fix a few outdated comments about stream_int_register_handler()
1129 - CLEANUP: stream-int: remove stream_int_unregister_handler() and si_detach()
1130 - MINOR: stream-int: only use si_release_endpoint() to release a connection
1131 - MINOR: standard: provide htonll() and ntohll()
1132 - CLEANUP/MINOR: dns: dns_str_to_dn_label() only needs a const char
1133 - BUG/MAJOR: dns: fix the length of the string to be copied
1134
Willy Tarreauad90f0d2015-06-17 15:53:25 +020011352015/06/17 : 1.6-dev2
1136 - BUG/MINOR: ssl: Display correct filename in error message
1137 - MEDIUM: logs: Add HTTP request-line log format directives
1138 - BUG/MEDIUM: check: tcpcheck regression introduced by e16c1b3f
1139 - BUG/MINOR: check: fix tcpcheck error message
1140 - MINOR: use an int instead of calling tcpcheck_get_step_id
1141 - MINOR: tcpcheck_rule structure update
1142 - MINOR: include comment in tcpcheck error log
1143 - DOC: tcpcheck comment documentation
1144 - MEDIUM: server: add support for changing a server's address
1145 - MEDIUM: server: change server ip address from stats socket
1146 - MEDIUM: protocol: add minimalist UDP protocol client
1147 - MEDIUM: dns: implement a DNS resolver
1148 - MAJOR: server: add DNS-based server name resolution
1149 - DOC: server name resolution + proto DNS
1150 - MINOR: dns: add DNS statistics
1151 - MEDIUM: http: configurable http result codes for http-request deny
1152 - BUILD: Compile clean when debug options defined
1153 - MINOR: lru: Add the possibility to free data when an item is removed
1154 - MINOR: lru: Add lru64_lookup function
1155 - MEDIUM: ssl: Add options to forge SSL certificates
1156 - MINOR: ssl: Export functions to manipulate generated certificates
1157 - MEDIUM: config: add DeviceAtlas global keywords
1158 - MEDIUM: global: add the DeviceAtlas required elements to struct global
1159 - MEDIUM: sample: add the da-csv converter
1160 - MEDIUM: init: DeviceAtlas initialization
1161 - BUILD: Makefile: add options to build with DeviceAtlas
1162 - DOC: README: explain how to build with DeviceAtlas
1163 - BUG/MEDIUM: http: fix the url_param fetch
1164 - BUG/MEDIUM: init: segfault if global._51d_property_names is not initialized
1165 - MAJOR: peers: peers protocol version 2.0
1166 - MINOR: peers: avoid re-scheduling of pending stick-table's updates still not pushed.
1167 - MEDIUM: peers: re-schedule stick-table's entry for sync when data is modified.
1168 - MEDIUM: peers: support of any stick-table data-types for sync
1169 - BUG/MAJOR: sample: regression on sample cast to stick table types.
1170 - CLEANUP: deinit: remove codes for cleaning p->block_rules
1171 - DOC: Fix L4TOUT typo in documentation
1172 - DOC: set-log-level in Logging section preamble
1173 - BUG/MEDIUM: compat: fix segfault on FreeBSD
1174 - MEDIUM: check: include server address and port in the send-state header
1175 - MEDIUM: backend: Allow redispatch on retry intervals
1176 - MINOR: Add TLS ticket keys reference and use it in the listener struct
1177 - MEDIUM: Add support for updating TLS ticket keys via socket
1178 - DOC: Document new socket commands "show tls-keys" and "set ssl tls-key"
1179 - MINOR: Add sample fetch which identifies if the SSL session has been resumed
1180 - DOC: Update doc about weight, act and bck fields in the statistics
1181 - BUG/MEDIUM: ssl: fix tune.ssl.default-dh-param value being overwritten
1182 - MINOR: ssl: add a destructor to free allocated SSL ressources
1183 - MEDIUM: ssl: add the possibility to use a global DH parameters file
1184 - MEDIUM: ssl: replace standards DH groups with custom ones
1185 - MEDIUM: stats: Add enum srv_stats_state
1186 - MEDIUM: stats: Separate server state and colour in stats
1187 - MEDIUM: stats: Only report drain state in stats if server has SRV_ADMF_DRAIN set
1188 - MEDIUM: stats: Differentiate between DRAIN and DRAIN (agent)
1189 - MEDIUM: Lower priority of email alerts for log-health-checks messages
1190 - MEDIUM: Send email alerts when servers are marked as UP or enter the drain state
1191 - MEDIUM: Document when email-alerts are sent
1192 - BUG/MEDIUM: lua: bad argument number in analyser and in error message
1193 - MEDIUM: lua: automatically converts strings in proxy, tables, server and ip
1194 - BUG/MINOR: utf8: remove compilator warning
1195 - MEDIUM: map: uses HAProxy facilities to store default value
1196 - BUG/MINOR: lua: error in detection of mandatory arguments
1197 - BUG/MINOR: lua: set current proxy as default value if it is possible
1198 - BUG/MEDIUM: http: the action set-{method|path|query|uri} doesn't run.
1199 - BUG/MEDIUM: lua: undetected infinite loop
1200 - BUG/MAJOR: http: don't read past buffer's end in http_replace_value
1201 - BUG/MEDIUM: http: the function "(req|res)-replace-value" doesn't respect the HTTP syntax
1202 - MEDIUM/CLEANUP: http: rewrite and lighten http_transform_header() prototype
1203 - BUILD: lua: it miss the '-ldl' directive
1204 - MEDIUM: http: allows 'R' and 'S' in the protocol alphabet
1205 - MINOR: http: split the function http_action_set_req_line() in two parts
1206 - MINOR: http: split http_transform_header() function in two parts.
1207 - MINOR: http: export function inet_set_tos()
1208 - MINOR: lua: txn: add function set_(loglevel|tos|mark)
1209 - MINOR: lua: create and register HTTP class
1210 - DOC: lua: fix some typos
1211 - MINOR: lua: add log functions
1212 - BUG/MINOR: lua: Fix SSL initialisation
1213 - DOC: lua: some fixes
1214 - MINOR: lua: (req|res)_get_headers return more than one header value
1215 - MINOR: lua: map system integration in Lua
1216 - BUG/MEDIUM: http: functions set-{path,query,method,uri} breaks the HTTP parser
1217 - MINOR: sample: add url_dec converter
1218 - MEDIUM: sample: fill the struct sample with the session, proxy and stream pointers
1219 - MEDIUM: sample change the prototype of sample-fetches and converters functions
1220 - MINOR: sample: fill the struct sample with the options.
1221 - MEDIUM: sample: change the prototype of sample-fetches functions
1222 - MINOR: http: split the url_param in two parts
1223 - CLEANUP: http: bad indentation
1224 - MINOR: http: add body_param fetch
1225 - MEDIUM: http: url-encoded parsing function can run throught wrapped buffer
1226 - DOC: http: req.body_param documentation
1227 - MINOR: proxy: custom capture declaration
1228 - MINOR: capture: add two "capture" converters
1229 - MEDIUM: capture: Allow capture with slot identifier
1230 - MINOR: http: add array of generic pointers in http_res_rules
1231 - MEDIUM: capture: adds http-response capture
1232 - MINOR: common: escape CSV strings
1233 - MEDIUM: stats: escape some strings in the CSV dump
1234 - MINOR: tcp: add custom actions that can continue tcp-(request|response) processing
1235 - MINOR: lua: Lua tcp action are not final action
1236 - DOC: lua: schematics about lua socket organization
1237 - BUG/MINOR: debug: display (null) in place of "meth"
1238 - DOC: mention the "lua action" in documentation
1239 - MINOR: standard: add function that converts signed int to a string
1240 - BUG/MINOR: sample: wrong conversion of signed values
1241 - MEDIUM: sample: Add type any
1242 - MINOR: debug: add a special converter which display its input sample content.
1243 - MINOR: tcp: increase the opaque data array
1244 - MINOR: tcp/http/conf: extends the keyword registration options
1245 - MINOR: build: fix build dependency
1246 - MEDIUM: vars: adds support of variables
1247 - MINOR: vars: adds get and set functions
1248 - MINOR: lua: Variable access
1249 - MINOR: samples: add samples which returns constants
1250 - BUG/MINOR: vars/compil: fix some warnings
1251 - BUILD: add 51degrees options to makefile.
1252 - MINOR: global: add several 51Degrees members to global
1253 - MINOR: config: add 51Degrees config parsing.
1254 - MINOR: init: add 51Degrees initialisation code
1255 - MEDIUM: sample: add fiftyone_degrees converter.
1256 - MEDIUM: deinit: add cleanup for 51Degrees to deinit
1257 - MEDIUM: sample: add trie support to 51Degrees
1258 - DOC: add 51Degrees notes to configuration.txt.
1259 - DOC: add build indications for 51Degrees to README.
1260 - MEDIUM: cfgparse: introduce weak and strong quoting
1261 - BUG/MEDIUM: cfgparse: incorrect memmove in quotes management
1262 - MINOR: cfgparse: remove line size limitation
1263 - MEDIUM: cfgparse: expand environment variables
1264 - BUG/MINOR: cfgparse: fix typo in 'option httplog' error message
1265 - BUG/MEDIUM: cfgparse: segfault when userlist is misused
1266 - CLEANUP: cfgparse: remove reference to 'ruleset' section
1267 - MEDIUM: cfgparse: check section maximum number of arguments
1268 - MEDIUM: cfgparse: max arguments check in the global section
1269 - MEDIUM: cfgparse: check max arguments in the proxies sections
1270 - CLEANUP: stream-int: remove a redundant clearing of the linger_risk flag
1271 - MINOR: connection: make conn_sock_shutw() actually perform the shutdown() call
1272 - MINOR: stream-int: use conn_sock_shutw() to shutdown a connection
1273 - MINOR: connection: perform the call to xprt->shutw() in conn_data_shutw()
1274 - MEDIUM: stream-int: replace xprt->shutw calls with conn_data_shutw()
1275 - MINOR: checks: use conn_data_shutw_hard() instead of call via xprt
1276 - MINOR: connection: implement conn_sock_send()
1277 - MEDIUM: stream-int: make conn_si_send_proxy() use conn_sock_send()
1278 - MEDIUM: connection: make conn_drain() perform more controls
1279 - REORG: connection: move conn_drain() to connection.c and rename it
1280 - CLEANUP: stream-int: remove inclusion of fd.h that is not used anymore
1281 - MEDIUM: channel: don't always set CF_WAKE_WRITE on bi_put*
1282 - CLEANUP: lua: don't use si_ic/si_oc on known stream-ints
1283 - BUG/MEDIUM: peers: correctly configure the client timeout
1284 - MINOR: peers: centralize configuration of the peers frontend
1285 - MINOR: proxy: store the default target into the frontend's configuration
1286 - MEDIUM: stats: use frontend_accept() as the accept function
1287 - MEDIUM: peers: use frontend_accept() instead of peer_accept()
1288 - CLEANUP: listeners: remove unused timeout
1289 - MEDIUM: listener: store the default target per listener
1290 - BUILD: fix automatic inclusion of libdl.
1291 - MEDIUM: lua: implement a simple memory allocator
1292 - MEDIUM: compression: postpone buffer adjustments after compression
1293 - MEDIUM: compression: don't send leading zeroes with chunk size
1294 - BUG/MINOR: compression: consider the expansion factor in init
1295 - MINOR: http: check the algo name "identity" instead of the function pointer
1296 - CLEANUP: compression: statify all algo-specific functions
1297 - MEDIUM: compression: add a distinction between UA- and config- algorithms
1298 - MEDIUM: compression: add new "raw-deflate" compression algorithm
1299 - MEDIUM: compression: split deflate_flush() into flush and finish
1300 - CLEANUP: compression: remove unused reset functions
1301 - MAJOR: compression: integrate support for libslz
1302 - BUG/MEDIUM: http: hdr_cnt would not count any header when called without name
1303 - BUG/MAJOR: http: null-terminate the http actions keywords list
1304 - CLEANUP: lua: remove the unused hlua_sleep memory pool
1305 - BUG/MAJOR: lua: use correct object size when initializing a new converter
1306 - CLEANUP: lua: remove hard-coded sizeof() in object creations and mallocs
1307 - CLEANUP: lua: fix confusing local variable naming in hlua_txn_new()
1308 - CLEANUP: hlua: stop using variable name "s" alternately for hlua_txn and hlua_smp
1309 - CLEANUP: lua: get rid of the last "*ht" for struct hlua_txn.
1310 - CLEANUP: lua: rename last occurrences of "*s" to "*htxn" for hlua_txn
1311 - CLEANUP: lua: rename variable "sc" for struct hlua_smp
1312 - CLEANUP: lua: get rid of the last two "*hs" for hlua_smp
1313 - REORG/MAJOR: session: rename the "session" entity to "stream"
1314 - REORG/MEDIUM: stream: rename stream flags from SN_* to SF_*
1315 - MINOR: session: start to reintroduce struct session
1316 - MEDIUM: stream: allocate the session when a stream is created
1317 - MEDIUM: stream: move the listener's pointer to the session
1318 - MEDIUM: stream: move the frontend's pointer to the session
1319 - MINOR: session: add a pointer to the session's origin
1320 - MEDIUM: session: use the pointer to the origin instead of s->si[0].end
1321 - CLEANUP: sample: remove useless tests in fetch functions for l4 != NULL
1322 - MEDIUM: http: move header captures from http_txn to struct stream
1323 - MINOR: http: create a dedicated pool for http_txn
1324 - MAJOR: http: move http_txn out of struct stream
1325 - MAJOR: sample: don't pass l7 anymore to sample fetch functions
1326 - CLEANUP: lua: remove unused hlua_smp->l7 and hlua_txn->l7
1327 - MEDIUM: http: remove the now useless http_txn from {req/res} rules
1328 - CLEANUP: lua: don't pass http_txn anymore to hlua_request_act_wrapper()
1329 - MAJOR: sample: pass a pointer to the session to each sample fetch function
1330 - MINOR: stream: provide a few helpers to retrieve frontend, listener and origin
1331 - CLEANUP: stream: don't set ->target to the incoming connection anymore
1332 - MINOR: stream: move session initialization before the stream's
1333 - MINOR: session: store the session's accept date
1334 - MINOR: session: don't rely on s->logs.logwait in embryonic sessions
1335 - MINOR: session: implement session_free() and use it everywhere
1336 - MINOR: session: add stick counters to the struct session
1337 - REORG: stktable: move the stkctr_* functions from stream to sticktable
1338 - MEDIUM: streams: support looking up stkctr in the session
1339 - MEDIUM: session: update the session's stick counters upon session_free()
1340 - MEDIUM: proto_tcp: track the session's counters in the connection ruleset
1341 - MAJOR: tcp: make tcp_exec_req_rules() only rely on the session
1342 - MEDIUM: stream: don't call stream_store_counters() in kill_mini_session() nor session_accept()
1343 - MEDIUM: stream: move all the session-specific stuff of stream_accept() earlier
1344 - MAJOR: stream: don't initialize the stream anymore in stream_accept
1345 - MEDIUM: session: remove the task pointer from the session
1346 - REORG: session: move the session parts out of stream.c
1347 - MINOR: stream-int: make appctx_new() take the applet in argument
1348 - MEDIUM: peers: move the appctx initialization earlier
1349 - MINOR: session: introduce session_new()
1350 - MINOR: session: make use of session_new() when creating a new session
1351 - MINOR: peers: make use of session_new() when creating a new session
1352 - MEDIUM: peers: initialize the task before the stream
1353 - MINOR: session: set the CO_FL_CONNECTED flag on the connection once ready
1354 - CLEANUP: stream.c: do not re-attach the connection to the stream
1355 - MEDIUM: stream: isolate connection-specific initialization code
1356 - MEDIUM: stream: also accept appctx as origin in stream_accept_session()
1357 - MEDIUM: peers: make use of stream_accept_session()
1358 - MEDIUM: frontend: make ->accept only return +/-1
1359 - MEDIUM: stream: return the stream upon accept()
1360 - MEDIUM: frontend: move some stream initialisation to stream_new()
1361 - MEDIUM: frontend: move the fd-specific settings to session_accept_fd()
1362 - MEDIUM: frontend: don't restrict frontend_accept() to connections anymore
1363 - MEDIUM: frontend: move some remaining stream settings to stream_new()
1364 - CLEANUP: frontend: remove one useless local variable
1365 - MEDIUM: stream: don't rely on the session's listener anymore in stream_new()
1366 - MEDIUM: lua: make use of stream_new() to create an outgoing connection
1367 - MINOR: lua: minor cleanup in hlua_socket_new()
1368 - MINOR: lua: no need for setting timeouts / conn_retries in hlua_socket_new()
1369 - MINOR: peers: no need for setting timeouts / conn_retries in peer_session_create()
1370 - CLEANUP: stream-int: swap stream-int and appctx declarations
1371 - CLEANUP: namespaces: fix protection against multiple inclusions
1372 - MINOR: session: maintain the session count stats in the session, not the stream
1373 - MEDIUM: session: adjust the connection flags before stream_new()
1374 - MINOR: stream: pass the pointer to the origin explicitly to stream_new()
1375 - CLEANUP: poll: move the conditions for waiting out of the poll functions
1376 - BUG/MEDIUM: listener: don't report an error when resuming unbound listeners
1377 - BUG/MEDIUM: init: don't limit cpu-map to the first 32 processes only
1378 - BUG/MAJOR: tcp/http: fix current_rule assignment when restarting over a ruleset
1379 - BUG/MEDIUM: stream-int: always reset si->ops when si->end is nullified
1380 - DOC: update the entities diagrams
1381 - BUG/MEDIUM: http: properly retrieve the front connection
1382 - MINOR: applet: add a new "owner" pointer in the appctx
1383 - MEDIUM: applet: make the applet not depend on a stream interface anymore
1384 - REORG: applet: move the applet definitions out of stream_interface
1385 - CLEANUP: applet: rename struct si_applet to applet
1386 - REORG: stream-int: create si_applet_ops dedicated to applets
1387 - MEDIUM: applet: add basic support for an applet run queue
1388 - MEDIUM: applet: implement a run queue for active appctx
1389 - MEDIUM: stream-int: add a new function si_applet_done()
1390 - MAJOR: applet: now call si_applet_done() instead of si_update() in I/O handlers
1391 - MAJOR: stream: use a regular ->update for all stream interfaces
1392 - MEDIUM: dumpstats: don't unregister the applet anymore
1393 - MEDIUM: applet: centralize the call to si_applet_done() in the I/O handler
1394 - MAJOR: stream: do not allocate request buffers anymore when the left side is an applet
1395 - MINOR: stream-int: add two flags to indicate an applet's wishes regarding I/O
1396 - MEDIUM: applet: make the applets only use si_applet_{cant|want|stop}_{get|put}
1397 - MEDIUM: stream-int: pause the appctx if the task is woken up
1398 - BUG/MAJOR: tcp: only call registered actions when they're registered
1399 - BUG/MEDIUM: peers: fix applet scheduling
1400 - BUG/MEDIUM: peers: recent applet changes broke peers updates scheduling
1401 - MINOR: tools: provide an rdtsc() function for time comparisons
1402 - IMPORT: lru: import simple ebtree-based LRU functions
1403 - IMPORT: hash: import xxhash-r39
1404 - MEDIUM: pattern: add a revision to all pattern expressions
1405 - MAJOR: pattern: add LRU-based cache on pattern matching
1406 - BUG/MEDIUM: http: remove content-length from chunked messages
1407 - DOC: http: update the comments about the rules for determining transfer-length
1408 - BUG/MEDIUM: http: do not restrict parsing of transfer-encoding to HTTP/1.1
1409 - BUG/MEDIUM: http: incorrect transfer-coding in the request is a bad request
1410 - BUG/MEDIUM: http: remove content-length form responses with bad transfer-encoding
1411 - MEDIUM: http: restrict the HTTP version token to 1 digit as per RFC7230
1412 - MEDIUM: http: disable support for HTTP/0.9 by default
1413 - MEDIUM: http: add option-ignore-probes to get rid of the floods of 408
1414 - BUG/MINOR: config: clear proxy->table.peers.p for disabled proxies
1415 - MEDIUM: init: don't stop proxies in parent process when exiting
1416 - MINOR: stick-table: don't attach to peers in stopped state
1417 - MEDIUM: config: initialize stick-tables after peers, not before
1418 - MEDIUM: peers: add the ability to disable a peers section
1419 - MINOR: peers: store the pointer to the signal handler
1420 - MEDIUM: peers: unregister peers that were never started
1421 - MEDIUM: config: propagate the table's process list to the peers sections
1422 - MEDIUM: init: stop any peers section not bound to the correct process
1423 - MEDIUM: config: validate that peers sections are bound to exactly one process
1424 - MAJOR: peers: allow peers section to be used with nbproc > 1
1425 - DOC: relax the peers restriction to single-process
1426 - DOC: document option http-ignore-probes
1427 - DOC: fix the comments about the meaning of msg->sol in HTTP
1428 - BUG/MEDIUM: http: wait for the exact amount of body bytes in wait_for_request_body
1429 - BUG/MAJOR: http: prevent risk of reading past end with balance url_param
1430 - MEDIUM: stream: move HTTP request body analyser before process_common
1431 - MEDIUM: http: add a new option http-buffer-request
1432 - MEDIUM: http: provide 3 fetches for the body
1433 - DOC: update the doc on the proxy protocol
1434 - BUILD: pattern: fix build warnings introduced in the LRU cache
1435 - BUG/MEDIUM: stats: properly initialize the scope before dumping stats
1436 - CLEANUP: config: fix misleading information in error message.
1437 - MINOR: config: report the number of processes using a peers section in the error case
1438 - BUG/MEDIUM: config: properly compute the default number of processes for a proxy
1439 - MEDIUM: http: add new "capture" action for http-request
1440 - BUG/MEDIUM: http: fix the http-request capture parser
1441 - BUG/MEDIUM: http: don't forward client shutdown without NOLINGER except for tunnels
1442 - BUILD/MINOR: ssl: fix build failure introduced by recent patch
1443 - BUG/MAJOR: check: fix breakage of inverted tcp-check rules
1444 - CLEANUP: checks: fix double usage of cur / current_step in tcp-checks
1445 - BUG/MEDIUM: checks: do not dereference head of a tcp-check at the end
1446 - CLEANUP: checks: simplify the loop processing of tcp-checks
1447 - BUG/MAJOR: checks: always check for end of list before proceeding
1448 - BUG/MEDIUM: checks: do not dereference a list as a tcpcheck struct
1449 - BUG/MAJOR: checks: break infinite loops when tcp-checks starts with comment
1450 - MEDIUM: http: make url_param iterate over multiple occurrences
1451 - BUG/MEDIUM: peers: apply a random reconnection timeout
1452 - MEDIUM: config: reject invalid config with name duplicates
1453 - MEDIUM: config: reject conflicts in table names
1454 - CLEANUP: proxy: make the proxy lookup functions more user-friendly
1455 - MINOR: proxy: simply ignore duplicates in proxy name lookups
1456 - MINOR: config: don't open-code proxy name lookups
1457 - MEDIUM: config: clarify the conflicting modes detection for backend rules
1458 - CLEANUP: proxy: remove now unused function findproxy_mode()
1459 - MEDIUM: stick-table: remove the now duplicate find_stktable() function
1460 - MAJOR: config: remove the deprecated reqsetbe / reqisetbe actions
1461 - MINOR: proxy: add a new function proxy_find_by_id()
1462 - MINOR: proxy: add a flag to memorize that the proxy's ID was forced
1463 - MEDIUM: proxy: add a new proxy_find_best_match() function
1464 - CLEANUP: http: explicitly reference request in http_apply_redirect_rules()
1465 - MINOR: http: prepare support for parsing redirect actions on responses
1466 - MEDIUM: http: implement http-response redirect rules
1467 - MEDIUM: http: no need to close the request on redirect if data was parsed
1468 - BUG/MEDIUM: http: fix body processing for the stats applet
1469 - BUG/MINOR: da: fix log-level comparison to emove annoying warning
1470 - CLEANUP: global: remove one ifdef USE_DEVICEATLAS
1471 - CLEANUP: da: move the converter registration to da.c
1472 - CLEANUP: da: register the config keywords in da.c
1473 - CLEANUP: adjust the envelope name in da.h to reflect the file name
1474 - CLEANUP: da: remove ifdef USE_DEVICEATLAS from da.c
1475 - BUILD: make 51D easier to build by defaulting to 51DEGREES_SRC
1476 - BUILD: fix build warning when not using 51degrees
1477 - BUILD: make DeviceAtlas easier to build by defaulting to DEVICEATLAS_SRC
1478 - BUILD: ssl: fix recent build breakage on older SSL libs
1479
Willy Tarreau8747b6d2015-03-11 23:57:23 +010014802015/03/11 : 1.6-dev1
1481 - CLEANUP: extract temporary $CFG to eliminate duplication
1482 - CLEANUP: extract temporary $BIN to eliminate duplication
1483 - CLEANUP: extract temporary $PIDFILE to eliminate duplication
1484 - CLEANUP: extract temporary $LOCKFILE to eliminate duplication
1485 - CLEANUP: extract quiet_check() to avoid duplication
1486 - BUG/MINOR: don't start haproxy on reload
1487 - DOC: Address issue where documentation is excluded due to a gitignore rule.
1488 - BUG/MEDIUM: systemd: set KillMode to 'mixed'
1489 - BUILD: fix "make install" to support spaces in the install dirs
1490 - BUG/MINOR: config: http-request replace-header arg typo
1491 - BUG: config: error in http-response replace-header number of arguments
1492 - DOC: missing track-sc* in http-request rules
1493 - BUILD: lua: missing ifdef related to SSL when enabling LUA
1494 - BUG/MEDIUM: regex: fix pcre_study error handling
1495 - MEDIUM: regex: Use pcre_study always when PCRE is used, regardless of JIT
1496 - BUG/MINOR: Fix search for -p argument in systemd wrapper.
1497 - MEDIUM: Improve signal handling in systemd wrapper.
1498 - DOC: fix typo in Unix Socket commands
1499 - BUG/MEDIUM: checks: external checks can't change server status to UP
1500 - BUG/MEDIUM: checks: segfault with external checks in a backend section
1501 - BUG/MINOR: checks: external checks shouldn't wait for timeout to return the result
1502 - BUG/MEDIUM: auth: fix segfault with http-auth and a configuration with an unknown encryption algorithm
1503 - BUG/MEDIUM: config: userlists should ensure that encrypted passwords are supported
1504 - BUG/MINOR: config: don't propagate process binding for dynamic use_backend
1505 - BUG/MINOR: log: fix request flags when keep-alive is enabled
1506 - BUG/MEDIUM: checks: fix conflicts between agent checks and ssl healthchecks
1507 - MINOR: checks: allow external checks in backend sections
1508 - MEDIUM: checks: provide environment variables to the external checks
1509 - MINOR: checks: update dynamic environment variables in external checks
1510 - DOC: checks: environment variables used by "external-check command"
1511 - BUG/MEDIUM: backend: correctly detect the domain when use_domain_only is used
1512 - MINOR: ssl: load certificates in alphabetical order
1513 - BUG/MINOR: checks: prevent http keep-alive with http-check expect
1514 - MINOR: lua: typo in an error message
1515 - MINOR: report the Lua version in -vv
1516 - MINOR: lua: add a compilation error message when compiled with an incompatible version
1517 - BUG/MEDIUM: lua: segfault when calling haproxy sample fetches from lua
1518 - BUILD: try to automatically detect the Lua library name
1519 - BUILD/CLEANUP: systemd: avoid a warning due to mixed code and declaration
1520 - BUG/MEDIUM: backend: Update hash to use unsigned int throughout
1521 - BUG/MEDIUM: connection: fix memory corruption when building a proxy v2 header
1522 - MEDIUM: connection: add new bit in Proxy Protocol V2
1523 - BUG/MINOR: ssl: rejects OCSP response without nextupdate.
1524 - BUG/MEDIUM: ssl: Fix to not serve expired OCSP responses.
1525 - BUG/MINOR: ssl: Fix OCSP resp update fails with the same certificate configured twice.
1526 - BUG/MINOR: ssl: Fix external function in order not to return a pointer on an internal trash buffer.
1527 - MINOR: add fetchs 'ssl_c_der' and 'ssl_f_der' to return DER formatted certs
1528 - MINOR: ssl: add statement to force some ssl options in global.
1529 - BUG/MINOR: ssl: correctly initialize ssl ctx for invalid certificates
1530 - BUG/MEDIUM: ssl: fix bad ssl context init can cause segfault in case of OOM.
1531 - BUG/MINOR: samples: fix unnecessary memcopy converting binary to string.
1532 - MINOR: samples: adds the bytes converter.
1533 - MINOR: samples: adds the field converter.
1534 - MINOR: samples: add the word converter.
1535 - BUG/MINOR: server: move the directive #endif to the end of file
1536 - BUG/MAJOR: buffer: check the space left is enough or not when input data in a buffer is wrapped
1537 - DOC: fix a few typos
1538 - CLEANUP: epoll: epoll_events should be allocated according to global.tune.maxpollevents
1539 - BUG/MINOR: http: fix typo: "401 Unauthorized" => "407 Unauthorized"
1540 - BUG/MINOR: parse: refer curproxy instead of proxy
1541 - BUG/MINOR: parse: check the validity of size string in a more strict way
1542 - BUILD: add new target 'make uninstall' to support uninstalling haproxy from OS
1543 - DOC: expand the docs for the provided stats.
1544 - BUG/MEDIUM: unix: do not unlink() abstract namespace sockets upon failure.
1545 - MEDIUM: ssl: Certificate Transparency support
1546 - MEDIUM: stats: proxied stats admin forms fix
1547 - MEDIUM: http: Compress HTTP responses with status codes 201,202,203 in addition to 200
1548 - BUG/MEDIUM: connection: sanitize PPv2 header length before parsing address information
1549 - MAJOR: namespace: add Linux network namespace support
1550 - MINOR: systemd: Check configuration before start
1551 - BUILD: ssl: handle boringssl in openssl version detection
1552 - BUILD: ssl: disable OCSP when using boringssl
1553 - BUILD: ssl: don't call get_rfc2409_prime when using boringssl
1554 - MINOR: ssl: don't use boringssl's cipher_list
1555 - BUILD: ssl: use OPENSSL_NO_OCSP to detect OCSP support
1556 - MINOR: stats: fix minor typo in HTML page
1557 - MINOR: Also accept SIGHUP/SIGTERM in systemd-wrapper
1558 - MEDIUM: Add support for configurable TLS ticket keys
1559 - DOC: Document the new tls-ticket-keys bind keyword
1560 - DOC: clearly state that the "show sess" output format is not fixed
1561 - MINOR: stats: fix minor typo fix in stats_dump_errors_to_buffer()
1562 - DOC: httplog does not support 'no'
1563 - BUG/MEDIUM: ssl: Fix a memory leak in DHE key exchange
1564 - MINOR: ssl: use SSL_get_ciphers() instead of directly accessing the cipher list.
1565 - BUG/MEDIUM: Consistently use 'check' in process_chk
1566 - MEDIUM: Add external check
1567 - BUG/MEDIUM: Do not set agent health to zero if server is disabled in config
1568 - MEDIUM/BUG: Only explicitly report "DOWN (agent)" if the agent health is zero
1569 - MEDIUM: Remove connect_chk
1570 - MEDIUM: Refactor init_check and move to checks.c
1571 - MEDIUM: Add free_check() helper
1572 - MEDIUM: Move proto and addr fields struct check
1573 - MEDIUM: Attach tcpcheck_rules to check
1574 - MEDIUM: Add parsing of mailers section
1575 - MEDIUM: Allow configuration of email alerts
1576 - MEDIUM: Support sending email alerts
1577 - DOC: Document email alerts
1578 - MINOR: Remove trailing '.' from email alert messages
1579 - MEDIUM: Allow suppression of email alerts by log level
1580 - BUG/MEDIUM: Do not consider an agent check as failed on L7 error
1581 - MINOR: deinit: fix memory leak
1582 - MINOR: http: export the function 'smp_fetch_base32'
1583 - BUG/MEDIUM: http: tarpit timeout is reset
1584 - MINOR: sample: add "json" converter
1585 - BUG/MEDIUM: pattern: don't load more than once a pattern list.
1586 - MINOR: map/acl/dumpstats: remove the "Done." message
1587 - BUG/MAJOR: ns: HAProxy segfault if the cli_conn is not from a network connection
1588 - BUG/MINOR: pattern: error message missing
1589 - BUG/MEDIUM: pattern: some entries are not deleted with case insensitive match
1590 - BUG/MINOR: ARG6 and ARG7 don't fit in a 32 bits word
1591 - MAJOR: poll: only rely on wake_expired_tasks() to compute the wait delay
1592 - MEDIUM: task: call session analyzers if the task is woken by a message.
1593 - MEDIUM: protocol: automatically pick the proto associated to the connection.
1594 - MEDIUM: channel: wake up any request analyzer on response activity
1595 - MINOR: converters: add a "void *private" argument to converters
1596 - MINOR: converters: give the session pointer as converter argument
1597 - MINOR: sample: add private argument to the struct sample_fetch
1598 - MINOR: global: export function and permits to not resolve DNS names
1599 - MINOR: sample: add function for browsing samples.
1600 - MINOR: global: export many symbols.
1601 - MINOR: includes: fix a lot of missing or useless includes
1602 - MEDIUM: tcp: add register keyword system.
1603 - MEDIUM: buffer: make bo_putblk/bo_putstr/bo_putchk return the number of bytes copied.
1604 - MEDIUM: http: change the code returned by the response processing rule functions
1605 - MEDIUM: http/tcp: permit to resume http and tcp custom actions
1606 - MINOR: channel: functions to get data from a buffer without copy
1607 - MEDIUM: lua: lua integration in the build and init system.
1608 - MINOR: lua: add ease functions
1609 - MINOR: lua: add runtime execution context
1610 - MEDIUM: lua: "com" signals
1611 - MINOR: lua: add the configuration directive "lua-load"
1612 - MINOR: lua: core: create "core" class and object
1613 - MINOR: lua: post initialisation bindings
1614 - MEDIUM: lua: add coroutine as tasks.
1615 - MINOR: lua: add sample and args type converters
1616 - MINOR: lua: txn: create class TXN associated with the transaction.
1617 - MINOR: lua: add shared context in the lua stack
1618 - MINOR: lua: txn: import existing sample-fetches in the class TXN
1619 - MINOR: lua: txn: add lua function in TXN that returns an array of http headers
1620 - MINOR: lua: register and execute sample-fetches in LUA
1621 - MINOR: lua: register and execute converters in LUA
1622 - MINOR: lua: add bindings for tcp and http actions
1623 - MINOR: lua: core: add sleep functions
1624 - MEDIUM: lua: socket: add "socket" class for TCP I/O
1625 - MINOR: lua: core: pattern and acl manipulation
1626 - MINOR: lua: channel: add "channel" class
1627 - MINOR: lua: txn: object "txn" provides two objects "channel"
1628 - MINOR: lua: core: can set the nice of the current task
1629 - MINOR: lua: core: can yield an execution stack
1630 - MINOR: lua: txn: add binding for closing the client connection.
1631 - MEDIUM: lua: Lua initialisation "on demand"
1632 - BUG/MAJOR: lua: send function fails and return bad bytes
1633 - MINOR: remove unused declaration.
1634 - MINOR: lua: remove some #define
1635 - MINOR: lua: use bitfield and macro in place of integer and enum
1636 - MINOR: lua: set skeleton for Lua execution expiration
1637 - MEDIUM: lua: each yielding function returns a wake up time.
1638 - MINOR: lua: adds "forced yield" flag
1639 - MEDIUM: lua: interrupt the Lua execution for running other process
1640 - MEDIUM: lua: change the sleep function core
1641 - BUG/MEDIUM: lua: the execution timeout is ignored in yield case
1642 - DOC: lua: Lua configuration documentation
1643 - MINOR: lua: add the struct session in the lua channel struct
1644 - BUG/MINOR: lua: set buffer if it is nnot avalaible.
1645 - BUG/MEDIUM: lua: reset flags before resuming execution
1646 - BUG/MEDIUM: lua: fix infinite loop about channel
1647 - BUG/MEDIUM: lua: the Lua process is not waked up after sending data on requests side
1648 - BUG/MEDIUM: lua: many errors when we try to send data with the channel API
1649 - MEDIUM: lua: use the Lua-5.3 version of the library
1650 - BUG/MAJOR: lua: some function are not yieldable, the forced yield causes errors
1651 - BUG/MEDIUM: lua: can't handle the response bytes
1652 - BUG/MEDIUM: lua: segfault with buffer_replace2
1653 - BUG/MINOR: lua: check buffers before initializing socket
1654 - BUG/MINOR: log: segfault if there are no proxy reference
1655 - BUG/MEDIUM: lua: sockets don't have buffer to write data
1656 - BUG/MEDIUM: lua: cannot connect socket
1657 - BUG/MINOR: lua: sockets receive behavior doesn't follows the specs
1658 - BUG/BUILD: lua: The strict Lua 5.3 version check is not done.
1659 - BUG/MEDIUM: buffer: one byte miss in buffer free space check
1660 - MEDIUM: lua: make the functions hlua_gethlua() and hlua_sethlua() faster
1661 - MINOR: replace the Core object by a simple model.
1662 - MEDIUM: lua: change the objects configuration
1663 - MEDIUM: lua: create a namespace for the fetches
1664 - MINOR: converters: add function to browse converters
1665 - MINOR: lua: wrapper for converters
1666 - MINOR: lua: replace function (req|get)_channel by a variable
1667 - MINOR: lua: fetches and converters can return an empty string in place of nil
1668 - DOC: lua api
1669 - BUG/MEDIUM: sample: fix random number upper-bound
1670 - BUG/MINOR: stats:Fix incorrect printf type.
1671 - BUG/MAJOR: session: revert all the crappy client-side timeout changes
1672 - BUG/MINOR: logs: properly initialize and count log sockets
1673 - BUG/MEDIUM: http: fetch "base" is not compatible with set-header
1674 - BUG/MINOR: counters: do not untrack counters before logging
1675 - BUG/MAJOR: sample: correctly reinitialize sample fetch context before calling sample_process()
1676 - MINOR: stick-table: make stktable_fetch_key() indicate why it failed
1677 - BUG/MEDIUM: counters: fix track-sc* to wait on unstable contents
1678 - BUILD: remove TODO from the spec file and add README
1679 - MINOR: log: make MAX_SYSLOG_LEN overridable at build time
1680 - MEDIUM: log: support a user-configurable max log line length
1681 - DOC: provide an example of how to use ssl_c_sha1
1682 - BUILD: checks: external checker needs signal.h
1683 - BUILD: checks: kill a minor warning on Solaris in external checks
1684 - BUILD: http: fix isdigit & isspace warnings on Solaris
1685 - BUG/MINOR: listener: set the listener's fd to -1 after deletion
1686 - BUG/MEDIUM: unix: failed abstract socket binding is retryable
1687 - MEDIUM: listener: implement a per-protocol pause() function
1688 - MEDIUM: listener: support rebinding during resume()
1689 - BUG/MEDIUM: unix: completely unbind abstract sockets during a pause()
1690 - DOC: explicitly mention the limits of abstract namespace sockets
1691 - DOC: minor fix on {sc,src}_kbytes_{in,out}
1692 - DOC: fix alphabetical sort of converters
1693 - MEDIUM: stick-table: implement lookup from a sample fetch
1694 - MEDIUM: stick-table: add new converters to fetch table data
1695 - MINOR: samples: add two converters for the date format
1696 - BUG/MAJOR: http: correctly rewind the request body after start of forwarding
1697 - DOC: remove references to CPU=native in the README
1698 - DOC: mention that "compression offload" is ignored in defaults section
1699 - DOC: mention that Squid correctly responds 400 to PPv2 header
1700 - BUILD: fix dependencies between config and compat.h
1701 - MINOR: session: export the function 'smp_fetch_sc_stkctr'
1702 - MEDIUM: stick-table: make it easier to register extra data types
1703 - BUG/MINOR: http: base32+src should use the big endian version of base32
1704 - MINOR: sample: allow IP address to cast to binary
1705 - MINOR: sample: add new converters to hash input
1706 - MINOR: sample: allow integers to cast to binary
1707 - BUILD: report commit ID in git versions as well
1708 - CLEANUP: session: move the stick counters declarations to stick_table.h
1709 - MEDIUM: http: add the track-sc* actions to http-request rules
1710 - BUG/MEDIUM: connection: fix proxy v2 header again!
1711 - BUG/MAJOR: tcp: fix a possible busy spinning loop in content track-sc*
1712 - OPTIM/MINOR: proxy: reduce struct proxy by 48 bytes on 64-bit archs
1713 - MINOR: log: add a new field "%lc" to implement a per-frontend log counter
1714 - BUG/MEDIUM: http: fix inverted condition in pat_match_meth()
1715 - BUG/MEDIUM: http: fix improper parsing of HTTP methods for use with ACLs
1716 - BUG/MINOR: pattern: remove useless allocation of unused trash in pat_parse_reg()
1717 - BUG/MEDIUM: acl: correctly compute the output type when a converter is used
1718 - CLEANUP: acl: cleanup some of the redundancy and spaghetti after last fix
1719 - BUG/CRITICAL: http: don't update msg->sov once data start to leave the buffer
1720 - MEDIUM: http: enable header manipulation for 101 responses
1721 - BUG/MEDIUM: config: propagate frontend to backend process binding again.
1722 - MEDIUM: config: properly propagate process binding between proxies
1723 - MEDIUM: config: make the frontends automatically bind to the listeners' processes
1724 - MEDIUM: config: compute the exact bind-process before listener's maxaccept
1725 - MEDIUM: config: only warn if stats are attached to multi-process bind directives
1726 - MEDIUM: config: report it when tcp-request rules are misplaced
1727 - DOC: indicate in the doc that track-sc* can wait if data are missing
1728 - MINOR: config: detect the case where a tcp-request content rule has no inspect-delay
1729 - MEDIUM: systemd-wrapper: support multiple executable versions and names
1730 - BUG/MEDIUM: remove debugging code from systemd-wrapper
1731 - BUG/MEDIUM: http: adjust close mode when switching to backend
1732 - BUG/MINOR: config: don't propagate process binding on fatal errors.
1733 - BUG/MEDIUM: check: rule-less tcp-check must detect connect failures
1734 - BUG/MINOR: tcp-check: report the correct failed step in the status
1735 - DOC: indicate that weight zero is reported as DRAIN
1736 - BUG/MEDIUM: config: avoid skipping disabled proxies
1737 - BUG/MINOR: config: do not accept more track-sc than configured
1738 - BUG/MEDIUM: backend: fix URI hash when a query string is present
1739 - BUG/MEDIUM: http: don't dump debug headers on MSG_ERROR
1740 - BUG/MAJOR: cli: explicitly call cli_release_handler() upon error
1741 - BUG/MEDIUM: tcp: fix outgoing polling based on proxy protocol
1742 - BUILD/MINOR: ssl: de-constify "ciphers" to avoid a warning on openssl-0.9.8
1743 - BUG/MEDIUM: tcp: don't use SO_ORIGINAL_DST on non-AF_INET sockets
1744 - BUG/BUILD: revert accidental change in the makefile from latest SSL fix
1745 - BUG/MEDIUM: ssl: force a full GC in case of memory shortage
1746 - MEDIUM: ssl: add support for smaller SSL records
1747 - MINOR: session: release a few other pools when stopping
1748 - MINOR: task: release the task pool when stopping
1749 - BUG/MINOR: config: don't inherit the default balance algorithm in frontends
1750 - BUG/MAJOR: frontend: initialize capture pointers earlier
1751 - BUG/MINOR: stats: correctly set the request/response analysers
1752 - MAJOR: polling: centralize calls to I/O callbacks
1753 - DOC: fix typo in the body parser documentation for msg.sov
1754 - BUG/MINOR: peers: the buffer size is global.tune.bufsize, not trash.size
1755 - MINOR: sample: add a few basic internal fetches (nbproc, proc, stopping)
1756 - DEBUG: pools: apply poisonning on every allocated pool
1757 - BUG/MAJOR: sessions: unlink session from list on out of memory
1758 - BUG/MEDIUM: patterns: previous fix was incomplete
1759 - BUG/MEDIUM: payload: ensure that a request channel is available
1760 - BUG/MINOR: tcp-check: don't condition data polling on check type
1761 - BUG/MEDIUM: tcp-check: don't rely on random memory contents
1762 - BUG/MEDIUM: tcp-checks: disable quick-ack unless next rule is an expect
1763 - BUG/MINOR: config: fix typo in condition when propagating process binding
1764 - BUG/MEDIUM: config: do not propagate processes between stopped processes
1765 - BUG/MAJOR: stream-int: properly check the memory allocation return
1766 - BUG/MEDIUM: memory: fix freeing logic in pool_gc2()
1767 - BUG/MAJOR: namespaces: conn->target is not necessarily a server
1768 - BUG/MEDIUM: compression: correctly report zlib_mem
1769 - CLEANUP: lists: remove dead code
1770 - CLEANUP: memory: remove dead code
1771 - CLEANUP: memory: replace macros pool_alloc2/pool_free2 with functions
1772 - MINOR: memory: cut pool allocator in 3 layers
1773 - MEDIUM: memory: improve pool_refill_alloc() to pass a refill count
1774 - MINOR: stream-int: retrieve session pointer from stream-int
1775 - MINOR: buffer: reset a buffer in b_reset() and not channel_init()
1776 - MEDIUM: buffer: use b_alloc() to allocate and initialize a buffer
1777 - MINOR: buffer: move buffer initialization after channel initialization
1778 - MINOR: buffer: only use b_free to release buffers
1779 - MEDIUM: buffer: always assign a dummy empty buffer to channels
1780 - MEDIUM: buffer: add a new buf_wanted dummy buffer to report failed allocations
1781 - MEDIUM: channel: do not report full when buf_empty is present on a channel
1782 - MINOR: session: group buffer allocations together
1783 - MINOR: buffer: implement b_alloc_fast()
1784 - MEDIUM: buffer: implement b_alloc_margin()
1785 - MEDIUM: session: implement a basic atomic buffer allocator
1786 - MAJOR: session: implement a wait-queue for sessions who need a buffer
1787 - MAJOR: session: only allocate buffers when needed
1788 - MINOR: stats: report a "waiting" flags for sessions
1789 - MAJOR: session: only wake up as many sessions as available buffers permit
1790 - MINOR: config: implement global setting tune.buffers.reserve
1791 - MINOR: config: implement global setting tune.buffers.limit
1792 - MEDIUM: channel: implement a zero-copy buffer transfer
1793 - MEDIUM: stream-int: support splicing from applets
1794 - OPTIM: stream-int: try to send pending spliced data
1795 - CLEANUP: session: remove session_from_task()
1796 - DOC: add missing entry for log-format and clarify the text
1797 - MINOR: logs: add a new per-proxy "log-tag" directive
1798 - BUG/MEDIUM: http: fix header removal when previous header ends with pure LF
1799 - MINOR: config: extend the default max hostname length to 64 and beyond
1800 - BUG/MEDIUM: channel: fix possible integer overflow on reserved size computation
1801 - BUG/MINOR: channel: compare to_forward with buf->i, not buf->size
1802 - MINOR: channel: add channel_in_transit()
1803 - MEDIUM: channel: make buffer_reserved() use channel_in_transit()
1804 - MEDIUM: channel: make bi_avail() use channel_in_transit()
1805 - BUG/MEDIUM: channel: don't schedule data in transit for leaving until connected
1806 - CLEANUP: channel: rename channel_reserved -> channel_is_rewritable
1807 - MINOR: channel: rename channel_full() to !channel_may_recv()
1808 - MINOR: channel: rename buffer_reserved() to channel_reserved()
1809 - MINOR: channel: rename buffer_max_len() to channel_recv_limit()
1810 - MINOR: channel: rename bi_avail() to channel_recv_max()
1811 - MINOR: channel: rename bi_erase() to channel_truncate()
1812 - BUG/MAJOR: log: don't try to emit a log if no logger is set
1813 - MINOR: tools: add new round_2dig() function to round integers
1814 - MINOR: global: always export some SSL-specific metrics
1815 - MINOR: global: report information about the cost of SSL connections
1816 - MAJOR: init: automatically set maxconn and/or maxsslconn when possible
1817 - MINOR: http: add a new fetch "query" to extract the request's query string
1818 - MINOR: hash: add new function hash_crc32
1819 - MINOR: samples: provide a "crc32" converter
1820 - MEDIUM: backend: add the crc32 hash algorithm for load balancing
1821 - BUG/MINOR: args: add missing entry for ARGT_MAP in arg_type_names
1822 - BUG/MEDIUM: http: make http-request set-header compute the string before removal
1823 - MEDIUM: args: use #define to specify the number of bits used by arg types and counts
1824 - MEDIUM: args: increase arg type to 5 bits and limit arg count to 5
1825 - MINOR: args: add type-specific flags for each arg in a list
1826 - MINOR: args: implement a new arg type for regex : ARGT_REG
1827 - MEDIUM: regex: add support for passing regex flags to regex_exec_match()
1828 - MEDIUM: samples: add a regsub converter to perform regex-based transformations
1829 - BUG/MINOR: sample: fix case sensitivity for the regsub converter
1830 - MEDIUM: http: implement http-request set-{method,path,query,uri}
1831 - DOC: fix missing closing brackend on regsub
1832 - MEDIUM: samples: provide basic arithmetic and bitwise operators
1833 - MEDIUM: init: continue to enforce SYSTEM_MAXCONN with auto settings if set
1834 - BUG/MINOR: http: fix incorrect header value offset in replace-hdr/replace-value
1835 - BUG/MINOR: http: abort request processing on filter failure
1836 - MEDIUM: tcp: implement tcp-ut bind option to set TCP_USER_TIMEOUT
1837 - MINOR: ssl/server: add the "no-ssl-reuse" server option
1838 - BUG/MAJOR: peers: initialize s->buffer_wait when creating the session
1839 - MINOR: http: add a new function to iterate over each header line
1840 - MINOR: http: add the new sample fetches req.hdr_names and res.hdr_names
1841 - MEDIUM: task: always ensure that the run queue is consistent
1842 - BUILD: Makefile: add -Wdeclaration-after-statement
1843 - BUILD/CLEANUP: ssl: avoid a warning due to mixed code and declaration
1844 - BUILD/CLEANUP: config: silent 3 warnings about mixed declarations with code
1845 - MEDIUM: protocol: use a family array to index the protocol handlers
1846 - BUILD: lua: cleanup many mixed occurrences declarations & code
1847 - BUG/MEDIUM: task: fix recently introduced scheduler skew
1848 - BUG/MINOR: lua: report the correct function name in an error message
1849 - BUG/MAJOR: http: fix stats regression consecutive to HTTP_RULE_RES_YIELD
1850 - Revert "BUG/MEDIUM: lua: can't handle the response bytes"
1851 - MINOR: lua: convert IP addresses to type string
1852 - CLEANUP: lua: use the same function names in C and Lua
1853 - REORG/MAJOR: move session's req and resp channels back into the session
1854 - CLEANUP: remove now unused channel pool
1855 - REORG/MEDIUM: stream-int: introduce si_ic/si_oc to access channels
1856 - MEDIUM: stream-int: add a flag indicating which side the SI is on
1857 - MAJOR: stream-int: only rely on SI_FL_ISBACK to find the requested channel
1858 - MEDIUM: stream-interface: remove now unused pointers to channels
1859 - MEDIUM: stream-int: make si_sess() use the stream int's side
1860 - MEDIUM: stream-int: use si_task() to retrieve the task from the stream int
1861 - MEDIUM: stream-int: remove any reference to the owner
1862 - CLEANUP: stream-int: add si_ib/si_ob to dereference the buffers
1863 - CLEANUP: stream-int: add si_opposite() to find the other stream interface
1864 - REORG/MEDIUM: channel: only use chn_prod / chn_cons to find stream-interfaces
1865 - MEDIUM: channel: add a new flag "CF_ISRESP" for the response channel
1866 - MAJOR: channel: only rely on the new CF_ISRESP flag to find the SI
1867 - MEDIUM: channel: remove now unused ->prod and ->cons pointers
1868 - CLEANUP: session: simplify references to chn_{prod,cons}(&s->{req,res})
1869 - CLEANUP: session: use local variables to access channels / stream ints
1870 - CLEANUP: session: don't needlessly pass a pointer to the stream-int
1871 - CLEANUP: session: don't use si_{ic,oc} when we know the session.
1872 - CLEANUP: stream-int: limit usage of si_ic/si_oc
1873 - CLEANUP: lua: limit usage of si_ic/si_oc
1874 - MINOR: channel: add chn_sess() helper to retrieve session from channel
1875 - MEDIUM: session: simplify receive buffer allocator to only use the channel
1876 - MEDIUM: lua: use CF_ISRESP to detect the channel's side
1877 - CLEANUP: lua: remove the session pointer from hlua_channel
1878 - CLEANUP: lua: hlua_channel_new() doesn't need the pointer to the session anymore
1879 - MEDIUM: lua: remove struct hlua_channel
1880 - MEDIUM: lua: remove hlua_sample_fetch
1881
Willy Tarreau15480d72014-06-19 21:10:58 +020018822014/06/19 : 1.6-dev0
1883 - exact copy of 1.5.0
1884
Willy Tarreau9229f122014-06-19 21:01:06 +020018852014/06/19 : 1.5.0
1886 - MEDIUM: ssl: ignored file names ending as '.issuer' or '.ocsp'.
1887 - MEDIUM: ssl: basic OCSP stapling support.
1888 - MINOR: ssl/cli: Fix unapropriate comment in code on 'set ssl ocsp-response'
1889 - MEDIUM: ssl: add 300s supported time skew on OCSP response update.
1890 - MINOR: checks: mysql-check: Add support for v4.1+ authentication
1891 - MEDIUM: ssl: Add the option to use standardized DH parameters >= 1024 bits
1892 - MEDIUM: ssl: fix detection of ephemeral diffie-hellman key exchange by using the cipher description.
1893 - MEDIUM: http: add actions "replace-header" and "replace-values" in http-req/resp
1894 - MEDIUM: Break out check establishment into connect_chk()
1895 - MEDIUM: Add port_to_str helper
1896 - BUG/MEDIUM: fix ignored values for half-closed timeouts (client-fin and server-fin) in defaults section.
1897 - BUG/MEDIUM: Fix unhandled connections problem with systemd daemon mode and SO_REUSEPORT.
1898 - MINOR: regex: fix a little configuration memory leak.
1899 - MINOR: regex: Create JIT compatible function that return match strings
1900 - MEDIUM: regex: replace all standard regex function by own functions
1901 - MEDIUM: regex: Remove null terminated strings.
1902 - MINOR: regex: Use native PCRE API.
1903 - MINOR: missing regex.h include
1904 - DOC: Add Exim as Proxy Protocol implementer.
1905 - BUILD: don't use type "uint" which is not portable
1906 - BUILD: stats: workaround stupid and bogus -Werror=format-security behaviour
1907 - BUG/MEDIUM: http: clear CF_READ_NOEXP when preparing a new transaction
1908 - CLEANUP: http: don't clear CF_READ_NOEXP twice
1909 - DOC: fix proxy protocol v2 decoder example
1910 - DOC: fix remaining occurrences of "pattern extraction"
1911 - MINOR: log: allow the HTTP status code to be logged even in TCP frontends
1912 - MINOR: logs: don't limit HTTP header captures to HTTP frontends
1913 - MINOR: sample: improve sample_fetch_string() to report partial contents
1914 - MINOR: capture: extend the captures to support non-header keys
1915 - MINOR: tcp: prepare support for the "capture" action
1916 - MEDIUM: tcp: add a new tcp-request capture directive
1917 - MEDIUM: session: allow shorter retry delay if timeout connect is small
1918 - MEDIUM: session: don't apply the retry delay when redispatching
1919 - MEDIUM: session: redispatch earlier when possible
1920 - MINOR: config: warn when tcp-check rules are used without option tcp-check
1921 - BUG/MINOR: connection: make proxy protocol v1 support the UNKNOWN protocol
1922 - DOC: proxy protocol example parser was still wrong
1923 - DOC: minor updates to the proxy protocol doc
1924 - CLEANUP: connection: merge proxy proto v2 header and address block
1925 - MEDIUM: connection: add support for proxy protocol v2 in accept-proxy
1926 - MINOR: tools: add new functions to quote-encode strings
1927 - DOC: clarify the CSV format
1928 - MEDIUM: stats: report the last check and last agent's output on the CSV status
1929 - MINOR: freq_ctr: introduce a new averaging method
1930 - MEDIUM: session: maintain per-backend and per-server time statistics
1931 - MEDIUM: stats: report per-backend and per-server time stats in HTML and CSV outputs
1932 - BUG/MINOR: http: fix typos in previous patch
1933 - DOC: remove the ultra-obsolete TODO file
1934 - DOC: update roadmap
1935 - DOC: minor updates to the README
1936 - DOC: mention the maxconn limitations with the select poller
1937 - DOC: commit a few old design thoughts files
1938
Willy Tarreau2e858402014-05-28 17:50:53 +020019392014/05/28 : 1.5-dev26
1940 - BUG/MEDIUM: polling: fix possible CPU hogging of worker processes after receiving SIGUSR1.
1941 - BUG/MINOR: stats: fix a typo on a closing tag for a server tracking another one
1942 - OPTIM: stats: avoid the calculation of a useless link on tracking servers in maintenance
1943 - MINOR: fix a few memory usage errors
1944 - CONTRIB: halog: Filter input lines by date and time through timestamp
1945 - MINOR: ssl: SSL_CTX_set_options() and SSL_CTX_set_mode() take a long, not an int
1946 - BUG/MEDIUM: regex: fix risk of buffer overrun in exp_replace()
1947 - MINOR: acl: set "str" as default match for strings
1948 - DOC: Add some precisions about acl default matching method
1949 - MEDIUM: acl: strenghten the option parser to report invalid options
1950 - BUG/MEDIUM: config: a stats-less config crashes in 1.5-dev25
1951 - BUG/MINOR: checks: tcp-check must not stop on '\0' for binary checks
1952 - MINOR: stats: improve alignment of color codes to save one line of header
1953 - MINOR: checks: simplify and improve reporting of state changes when using log-health-checks
1954 - MINOR: server: remove the SRV_DRAIN flag which can always be deduced
1955 - MINOR: server: use functions to detect state changes and to update them
1956 - MINOR: server: create srv_was_usable() from srv_is_usable() and use a pointer
1957 - BUG/MINOR: stats: do not report "100%" in the thottle column when server is draining
1958 - BUG/MAJOR: config: don't free valid regex memory
1959 - BUG/MEDIUM: session: don't clear CF_READ_NOEXP if analysers are not called
1960 - BUG/MINOR: stats: tracking servers may incorrectly report an inherited DRAIN status
1961 - MEDIUM: proxy: make timeout parser a bit stricter
1962 - REORG/MEDIUM: server: split server state and flags in two different variables
1963 - REORG/MEDIUM: server: move the maintenance bits out of the server state
1964 - MAJOR: server: use states instead of flags to store the server state
1965 - REORG: checks: put the functions in the appropriate files !
1966 - MEDIUM: server: properly support and propagate the maintenance status
1967 - MEDIUM: server: allow multi-level server tracking
1968 - CLEANUP: checks: rename the server_status_printf function
1969 - MEDIUM: checks: simplify server up/down/nolb transitions
1970 - MAJOR: checks: move health checks changes to set_server_check_status()
1971 - MINOR: server: make the status reporting function support a reason
1972 - MINOR: checks: simplify health check reporting functions
1973 - MINOR: server: implement srv_set_stopped()
1974 - MINOR: server: implement srv_set_running()
1975 - MINOR: server: implement srv_set_stopping()
1976 - MEDIUM: checks: simplify failure notification using srv_set_stopped()
1977 - MEDIUM: checks: simplify success notification using srv_set_running()
1978 - MEDIUM: checks: simplify stopping mode notification using srv_set_stopping()
1979 - MEDIUM: stats: report a server's own state instead of the tracked one's
1980 - MINOR: server: make use of srv_is_usable() instead of checking eweight
1981 - MAJOR: checks: add support for a new "drain" administrative mode
1982 - MINOR: stats: use the admin flags for soft enable/disable/stop/start on the web page
1983 - MEDIUM: stats: introduce new actions to simplify admin status management
1984 - MINOR: cli: introduce a new "set server" command
1985 - MINOR: stats: report a distinct output for DOWN caused by agent
1986 - MINOR: checks: support specific check reporting for the agent
1987 - MINOR: checks: support a neutral check result
1988 - BUG/MINOR: cli: "agent" was missing from the "enable"/"disable" help message
1989 - MEDIUM: cli: add support for enabling/disabling health checks.
1990 - MEDIUM: stats: report down caused by agent prior to reporting up
1991 - MAJOR: agent: rework the response processing and support additional actions
1992 - MINOR: stats: improve the stats web page to support more actions
1993 - CONTRIB: halog: avoid calling time/localtime/mktime for each line
1994 - DOC: document the workarouds for Google Chrome's bogus pre-connect
1995 - MINOR: stats: report SSL key computations per second
1996 - MINOR: stats: add counters for SSL cache lookups and misses
1997
Willy Tarreaua3393952014-05-10 15:16:43 +020019982014/05/10 : 1.5-dev25
1999 - MEDIUM: connection: Implement and extented PROXY Protocol V2
2000 - MINOR: ssl: clean unused ACLs declarations
2001 - MINOR: ssl: adds fetchs and ACLs for ssl back connection.
2002 - MINOR: ssl: merge client's and frontend's certificate functions.
2003 - MINOR: ssl: adds ssl_f_sha1 fetch to return frontend's certificate fingerprint
2004 - MINOR: ssl: adds sample converter base64 for binary type.
2005 - MINOR: ssl: convert to binary ssl_fc_unique_id and ssl_bc_unique_id.
2006 - BUG/MAJOR: ssl: Fallback to private session cache if current lock mode is not supported.
2007 - MAJOR: ssl: Change default locks on ssl session cache.
2008 - BUG/MINOR: chunk: Fix function chunk_strcmp and chunk_strcasecmp match a substring.
2009 - MINOR: ssl: add global statement tune.ssl.force-private-cache.
2010 - MINOR: ssl: remove fallback to SSL session private cache if lock init fails.
2011 - BUG/MEDIUM: patterns: last fix was still not enough
2012 - MINOR: http: export the smp_fetch_cookie function
2013 - MINOR: http: generic pointer to rule argument
2014 - BUG/MEDIUM: pattern: a typo breaks automatic acl/map numbering
2015 - BUG/MAJOR: patterns: -i and -n are ignored for inlined patterns
2016 - BUG/MINOR: proxy: unsafe initialization of HTTP transaction when switching from TCP frontend
2017 - BUG/MINOR: http: log 407 in case of proxy auth
2018 - MINOR: http: rely on the message body parser to send 100-continue
2019 - MEDIUM: http: move reqadd after execution of http_request redirect
2020 - MEDIUM: http: jump to dedicated labels after http-request processing
2021 - BUG/MINOR: http: block rules forgot to increment the denied_req counter
2022 - BUG/MINOR: http: block rules forgot to increment the session's request counter
2023 - MEDIUM: http: move Connection header processing earlier
2024 - MEDIUM: http: remove even more of the spaghetti in the request path
2025 - MINOR: http: silently support the "block" action for http-request
2026 - CLEANUP: proxy: rename "block_cond" to "block_rules"
2027 - MEDIUM: http: emulate "block" rules using "http-request" rules
2028 - MINOR: http: remove the now unused loop over "block" rules
2029 - MEDIUM: http: factorize the "auth" action of http-request and stats
2030 - MEDIUM: http: make http-request rules processing return a verdict instead of a rule
2031 - MINOR: config: add minimum support for emitting warnings only once
2032 - MEDIUM: config: inform the user about the deprecatedness of "block" rules
2033 - MEDIUM: config: inform the user that "reqsetbe" is deprecated
2034 - MEDIUM: config: inform the user only once that "redispatch" is deprecated
2035 - MEDIUM: config: warn that '{cli,con,srv}timeout' are deprecated
2036 - BUG/MINOR: auth: fix wrong return type in pat_match_auth()
2037 - BUILD: config: remove a warning with clang
2038 - BUG/MAJOR: http: connection setup may stall on balance url_param
2039 - BUG/MEDIUM: http/session: disable client-side expiration only after body
2040 - BUG/MEDIUM: http: correctly report request body timeouts
2041 - BUG/MEDIUM: http: disable server-side expiration until client has sent the body
2042 - MEDIUM: listener: make the accept function more robust against pauses
2043 - BUILD: syscalls: remove improper inline statement in front of syscalls
2044 - BUILD: ssl: SSL_CTX_set_msg_callback() needs openssl >= 0.9.7
2045 - BUG/MAJOR: session: recover the correct connection pointer in half-initialized sessions
2046 - DOC: add some explanation on the shared cache build options in the readme.
2047 - MEDIUM: proxy: only adjust the backend's bind-process when already set
2048 - MEDIUM: config: limit nbproc to the machine's word size
2049 - MEDIUM: config: check the bind-process settings according to nbproc
2050 - MEDIUM: listener: parse the new "process" bind keyword
2051 - MEDIUM: listener: inherit the process mask from the proxy
2052 - MAJOR: listener: only start listeners bound to the same processes
2053 - MINOR: config: only report a warning when stats sockets are bound to more than 1 process
2054 - CLEANUP: config: set the maxaccept value for peers listeners earlier
2055 - BUG/MINOR: backend: only match IPv4 addresses with RDP cookies
2056 - BUG/MINOR: checks: correctly configure the address family and protocol
2057 - MINOR: tools: split is_addr() and is_inet_addr()
2058 - MINOR: protocols: use is_inet_addr() when only INET addresses are desired
2059 - MEDIUM: unix: add preliminary support for connecting to servers over UNIX sockets
2060 - MEDIUM: checks: only complain about the missing port when the check uses TCP
2061 - MEDIUM: unix: implement support for Linux abstract namespace sockets
2062 - DOC: map_beg was missing from the table of map_* converters
2063 - DOC: ebtree: indicate that prefix insertion/lookup may be used with strings
2064 - MEDIUM: pattern: use ebtree's longest match to index/lookup string beginning
2065 - BUILD: remove the obsolete BSD and OSX makefiles
2066 - MEDIUM: unix: avoid a double connect probe when no data are sent
2067 - DOC: stop referencing the slow git repository in the README
2068 - BUILD: only build the systemd wrapper on Linux 2.6 and above
2069 - DOC: update roadmap with completed tasks
2070 - MEDIUM: session: implement half-closed timeouts (client-fin and server-fin)
2071
Willy Tarreau8860dcd2014-04-26 00:08:14 +020020722014/04/26 : 1.5-dev24
2073 - MINOR: pattern: find element in a reference
2074 - MEDIUM: http: ACL and MAP updates through http-(request|response) rules
2075 - MEDIUM: ssl: explicitly log failed handshakes after a heartbeat
2076 - DOC: Full section dedicated to the converters
2077 - MEDIUM: http: register http-request and http-response keywords
2078 - BUG/MINOR: compression: correctly report incoming byte count
2079 - BUG/MINOR: http: don't report server aborts as client aborts
2080 - BUG/MEDIUM: channel: bi_putblk() must not wrap before the end of buffer
2081 - CLEANUP: buffers: remove unused function buffer_contig_space_with_res()
2082 - MEDIUM: stats: reimplement HTTP keep-alive on the stats page
2083 - BUG/MAJOR: http: fix timeouts during data forwarding
2084 - BUG/MEDIUM: http: 100-continue responses must process the next part immediately
2085 - MEDIUM: http: move skipping of 100-continue earlier
2086 - BUILD: stats: let gcc know that last_fwd cannot be used uninitialized...
2087 - CLEANUP: general: get rid of all old occurrences of "session *t"
2088 - CLEANUP: http: remove the useless "if (1)" inherited from version 1.4
2089 - BUG/MEDIUM: stats: mismatch between behaviour and doc about front/back
2090 - MEDIUM: http: enable analysers to have keep-alive on stats
2091 - REORG: http: move HTTP Connection response header parsing earlier
2092 - MINOR: stats: always emit HTTP/1.1 in responses
2093 - MINOR: http: add capture.req.ver and capture.res.ver
2094 - MINOR: checks: add a new global max-spread-checks directive
2095 - BUG/MAJOR: http: fix the 'next' pointer when performing a redirect
2096 - MINOR: http: implement the max-keep-alive-queue setting
2097 - DOC: fix alphabetic order of tcp-check
2098 - MINOR: connection: add a new error code for SSL with heartbeat
2099 - MEDIUM: ssl: implement a workaround for the OpenSSL heartbleed attack
2100 - BUG/MEDIUM: Revert "MEDIUM: ssl: Add standardized DH parameters >= 1024 bits"
2101 - BUILD: http: remove a warning on strndup
2102 - BUILD: ssl: avoid a warning about conn not used with OpenSSL < 1.0.1
2103 - BUG/MINOR: ssl: really block OpenSSL's response to heartbleed attack
2104 - MINOR: ssl: finally catch the heartbeats missing the padding
2105
Willy Tarreau8317b282014-04-23 01:49:41 +020021062014/04/23 : 1.5-dev23
2107 - BUG/MINOR: reject malformed HTTP/0.9 requests
2108 - MINOR: systemd wrapper: re-execute on SIGUSR2
2109 - MINOR: systemd wrapper: improve logging
2110 - MINOR: systemd wrapper: propagate exit status
2111 - BUG/MINOR: tcpcheck connect wrong behavior
2112 - MEDIUM: proxy: support use_backend with dynamic names
2113 - MINOR: stats: Enhancement to stats page to provide information of last session time.
2114 - BUG/MEDIUM: peers: fix key consistency for integer stick tables
2115 - DOC: fix a typo on http-server-close and encapsulate options with double-quotes
2116 - DOC: fix fetching samples syntax
2117 - MINOR: ssl: add ssl_fc_unique_id to fetch TLS Unique ID
2118 - MEDIUM: ssl: Use ALPN support as it will be available in OpenSSL 1.0.2
2119 - DOC: fix typo
2120 - CLEANUP: code style: use tabs to indent codes instead of spaces
2121 - DOC: fix a few config typos.
2122 - BUG/MINOR: raw_sock: also consider ENOTCONN in addition to EAGAIN for recv()
2123 - DOC: lowercase format string in unique-id
2124 - MINOR: set IP_FREEBIND on IPv6 sockets in transparent mode
2125 - BUG/MINOR: acl: req_ssl_sni fails with SSLv3 record version
2126 - BUG/MINOR: build: add missing objects in osx and bsd Makefiles
2127 - BUG/MINOR: build: handle whitespaces in wc -l output
2128 - BUG/MINOR: Fix name lookup ordering when compiled with USE_GETADDRINFO
2129 - MEDIUM: ssl: Add standardized DH parameters >= 1024 bits
2130 - BUG/MEDIUM: map: The map parser includes blank lines.
2131 - BUG/MINOR: log: The log of quotted capture header has been terminated by 2 quotes.
2132 - MINOR: standard: add function "encode_chunk"
2133 - BUG/MINOR: http: fix encoding of samples used in http headers
2134 - MINOR: sample: add hex converter
2135 - MEDIUM: sample: change the behavior of the bin2str cast
2136 - MAJOR: auth: Change the internal authentication system.
2137 - MEDIUM: acl/pattern: standardisation "of pat_parse_int()" and "pat_parse_dotted_ver()"
2138 - MEDIUM: pattern: The pattern parser no more uses <opaque> and just takes one string.
2139 - MEDIUM: pattern: Change the prototype of the function pattern_register().
2140 - CONTRIB: ip6range: add a network IPv6 range to mask converter
2141 - MINOR: pattern: separe list element from the data part.
2142 - MEDIUM: pattern: add indexation function.
2143 - MEDIUM: pattern: The parse functions just return "struct pattern" without memory allocation
2144 - MINOR: pattern: Rename "pat_idx_elt" to "pattern_tree"
2145 - MINOR: sample: dont call the sample cast function "c_none"
2146 - MINOR: standard: Add function for converting cidr to network mask.
2147 - MEDIUM: sample: Remove types SMP_T_CSTR and SMP_T_CBIN, replace it by SMP_F_CONST flags
2148 - MEDIUM: sample/http_proto: Add new type called method
2149 - MINOR: dumpstats: Group map inline help
2150 - MEDIUM: pattern: The function pattern_exec_match() returns "struct pattern" if the patten match.
2151 - MINOR: dumpstats: change map inline sentences
2152 - MINOR: dumpstats: change the "get map" display management
2153 - MINOR: map/dumpstats: The cli cmd "get map ..." display the "int" format.
2154 - MEDIUM: pattern: The match function browse itself the list or the tree.
2155 - MEDIUM: pattern: Index IPv6 addresses in a tree.
2156 - MEDIUM: pattern: add delete functions
2157 - MEDIUM: pattern: add prune function
2158 - MEDIUM: pattern: add sample lookup function.
2159 - MEDIUM: pattern/dumpstats: The function pattern_lookup() is no longer used
2160 - MINOR: map/pattern: The sample parser is stored in the pattern
2161 - MAJOR: pattern/map: Extends the map edition system in the patterns
2162 - MEDIUM: pattern: merge same pattern
2163 - MEDIUM: pattern: The expected type is stored in the pattern head, and conversion is executed once.
2164 - MINOR: pattern: Each pattern is identified by unique id.
2165 - MINOR: pattern/acl: Each pattern of each acl can be load with specified id
2166 - MINOR: pattern: The function "pattern_register()" is no longer used.
2167 - MINOR: pattern: Merge function pattern_add() with pat_ref_push().
2168 - MINOR: pattern: store configuration reference for each acl or map pattern.
2169 - MINOR: pattern: Each pattern expression element store the reference struct.
2170 - MINOR: dumpstats: display the reference for th key/pattern and value.
2171 - MEDIUM: pattern: delete() function uses the pat_ref_elt to find the element to be removed
2172 - MEDIUM: pattern_find_smp: functions find_smp uses the pat_ref_elt to find the element to be removed
2173 - MEDIUM: dumpstats/pattern: display and use each pointer of each pattern dumped
2174 - MINOR: pattern/map/acl: Centralization of the file parsers
2175 - MINOR: pattern: Check if the file reference is not used with acl and map
2176 - MINOR: acl/pattern: Acl "-M" option force to load file as map file with two columns
2177 - MEDIUM: dumpstats: Display error message during add of values.
2178 - MINOR: pattern: The function pat_ref_set() have now atomic behavior
2179 - MINOR: regex: The pointer regstr in the struc regex is no longer used.
2180 - MINOR: cli: Block the usage of the command "acl add" in many cases.
2181 - MINOR: doc: Update the documentation about the map and acl
2182 - MINOR: pattern: index duplicates
2183 - MINOR: configuration: File and line propagation
2184 - MINOR: dumpstat/conf: display all the configuration lines that using pattern reference
2185 - MINOR: standard: Disable ip resolution during the runtime
2186 - MINOR: pattern: Remove the flag "PAT_F_FROM_FILE".
2187 - MINOR: pattern: forbid dns resolutions
2188 - DOC: document "get map" / "get acl" on the CLI
2189 - MEDIUM: acl: Change the acl register struct
2190 - BUG/MEDIUM: acl: boolean only matches were broken by recent changes
2191 - DOC: pattern: pattern organisation schematics
2192 - MINOR: pattern/cli: Update used terms in documentation and cli
2193 - MINOR: cli: remove information about acl or map owner.
2194 - MINOR: session: don't always assume there's a listener
2195 - MINOR: pattern: Add function to prune and reload pattern list.
2196 - MINOR: standard: Add ipv6 support in the function url2sa().
2197 - MEDIUM: config: Dynamic sections.
2198 - BUG/MEDIUM: stick-table: fix IPv4-to-IPv6 conversion in src_* fetches
2199 - MINOR: http: Add the "language" converter to for use with accept-language
2200 - BUG/MINOR: log: Don't dump empty unique-id
2201 - BUG/MAJOR: session: fix a possible crash with src_tracked
2202 - DOC: Update "language" documentation
2203 - MINOR: http: add the function "del-header" to the directives http-request and http-response
2204 - DOC: add some information on capture.(req|res).hdr
2205 - MINOR: http: capture.req.method and capture.req.uri
2206 - MINOR: http: optimize capture.req.method and capture.req.uri
2207 - MINOR: session: clean up the connection free code
2208 - BUG/MEDIUM: checks: immediately report a connection success
2209 - MEDIUM: connection: don't use real send() flags in snd_buf()
2210 - OPTIM: ssl: implement dynamic record size adjustment
2211 - MINOR: stats: report exact last session time in backend too
2212 - BUG/MEDIUM: stats: the "lastsess" field must appear last in the CSV.
2213 - BUG/MAJOR: check: fix memory leak in "tcp-check connect" over SSL
2214 - BUG/MINOR: channel: initialize xfer_small/xfer_large on new buffers
2215 - MINOR: channel: add the date of last read in the channel
2216 - MEDIUM: stream-int: automatically disable CF_STREAMER flags after idle
2217 - MINOR: ssl: add DEFAULT_SSL_MAX_RECORD to set the record size at build time
2218 - MINOR: config: make the stream interface idle timer user-configurable
2219 - MINOR: config: add global directives to set default SSL ciphers
2220 - MINOR: sample: add a rand() sample fetch to return a sample.
2221 - BUG/MEDIUM: config: immediately abort if peers section has no name
2222 - BUG/MINOR: ssl: fix syntax in config error message
2223 - BUG/MEDIUM: ssl: always send a full buffer after EAGAIN
2224 - BUG/MINOR: config: server on-marked-* statement is ignored in default-server
2225 - BUG/MEDIUM: backend: prefer-last-server breaks redispatch
2226 - BUG/MEDIUM: http: continue to emit 503 on keep-alive to different server
2227 - MEDIUM: acl: fix pattern type for payload / payload_lv
2228 - BUG/MINOR: config: fix a crash on startup when a disabled backend references a peer
2229 - BUG/MEDIUM: compression: fix the output type of the compressor name
2230 - BUG/MEDIUM: http: don't start to forward request data before the connect
2231 - MINOR: http: release compression context only in http_end_txn()
2232 - MINOR: protect ebimtree/ebistree against multiple inclusions
2233 - MEDIUM: proxy: create a tree to store proxies by name
2234 - MEDIUM: proxy: make findproxy() use trees to look up proxies
2235 - MEDIUM: proxy: make get_backend_server() use findproxy() to lookup proxies
2236 - MEDIUM: stick-table: lookup table names using trees.
2237 - MEDIUM: config: faster lookup for duplicated proxy name
2238 - CLEANUP: acl: remove obsolete test in parse_acl_expr()
2239 - MINOR: sample: move smp_to_type to sample.c
2240 - MEDIUM: compression: consider the "q=" attribute in Accept-Encoding
2241 - REORG: cfgparse: move server keyword parsing to server.c
2242 - BUILD: adjust makefile for AIX 5.1
2243 - BUG/MEDIUM: pattern: fix wrong definition of the pat_prune_fcts array
2244 - CLEANUP: pattern: move array definitions to proto/ and not types/
2245 - BUG/MAJOR: counters: check for null-deref when looking up an alternate table
2246 - BUILD: ssl: previous patch failed
2247 - BUILD/MEDIUM: standard: get rid of the last strcpy()
2248 - BUILD/MEDIUM: standard: get rid of sprintf()
2249 - BUILD/MEDIUM: cfgparse: get rid of sprintf()
2250 - BUILD/MEDIUM: checks: get rid of sprintf()
2251 - BUILD/MEDIUM: http: remove calls to sprintf()
2252 - BUG/MEDIUM: systemd-wrapper: fix locating of haproxy binary
2253 - BUILD/MINOR: ssl: remove one call to sprintf()
2254 - MEDIUM: http: don't reject anymore message bodies not containing the url param
2255 - MEDIUM: http: wait for the first chunk or message body length in http_process_body
2256 - CLEANUP: http: rename http_process_request_body()
2257 - CLEANUP: http: prepare dedicated processing for chunked encoded message bodies
2258 - MINOR: http: make msg->eol carry the last CRLF length
2259 - MAJOR: http: do not use msg->sol while processing messages or forwarding data
2260 - MEDIUM: http: http_parse_chunk_crlf() must not advance the buffer pointer
2261 - MAJOR: http: don't update msg->sov anymore while processing the body
2262 - MINOR: http: add a small helper to compute the amount of body bytes present
2263 - MEDIUM: http: add a small helper to compute how far to rewind to find headers
2264 - MINOR: http: add a small helper to compute how far to rewind to find URI
2265 - MEDIUM: http: small helpers to compute how far to rewind to find BODY and DATA
2266 - MAJOR: http: reset msg->sov after headers are forwarded
2267 - MEDIUM: http: forward headers again while waiting for connection to complete
2268 - BUG/MINOR: http: deinitialize compression after a parsing error
2269 - BUG/MINOR: http: deinitialize compression after a compression error
2270 - MEDIUM: http: headers must be forwarded even if data was already inspected
2271 - MAJOR: http: re-enable compression on chunked encoding
2272 - MAJOR: http/compression: fix chunked-encoded response processing
2273 - MEDIUM: http: cleanup: centralize a little bit HTTP compression end
2274 - MEDIUM: http: start to centralize the forwarding code
2275 - MINOR: http: further cleanups of response forwarding function
2276 - MEDIUM: http: only allocate the temporary compression buffer when needed
2277 - MAJOR: http: centralize data forwarding in the request path
2278 - CLEANUP: http: document the response forwarding states
2279 - CLEANUP: http: remove all calls to http_silent_debug()
2280 - DOC: internal: add some reminders about HTTP parsing and pointer states
2281 - BUG/MAJOR: http: fix bug in parse_qvalue() when selecting compression algo
2282 - BUG/MINOR: stats: last session was not always set
2283 - DOC: add pointer to the Cyril's HTML doc in the README
2284 - MEDIUM: config: relax use_backend check to make the condition optional
2285 - MEDIUM: config: report misplaced http-request rules
2286 - MEDIUM: config: report misplaced use-server rules
2287 - DOC: update roadmap with what was done.
2288
Willy Tarreau1a34d572014-02-03 00:41:29 +010022892014/02/03 : 1.5-dev22
2290 - MEDIUM: tcp-check new feature: connect
2291 - MEDIUM: ssl: Set verify 'required' as global default for servers side.
2292 - MINOR: ssl: handshake optim for long certificate chains.
2293 - BUG/MINOR: pattern: pattern comparison executed twice
2294 - BUG/MEDIUM: map: segmentation fault with the stats's socket command "set map ..."
2295 - BUG/MEDIUM: pattern: Segfault in binary parser
2296 - MINOR: pattern: move functions for grouping pat_match_* and pat_parse_* and add documentation.
2297 - MINOR: standard: The parse_binary() returns the length consumed and his documentation is updated
2298 - BUG/MINOR: payload: the patterns of the acl "req.ssl_ver" are no parsed with the good function.
2299 - BUG/MEDIUM: pattern: "pat_parse_dotted_ver()" set bad expect_type.
2300 - BUG/MINOR: sample: The c_str2int converter does not fail if the entry is not an integer
2301 - BUG/MEDIUM: http/auth: Sometimes the authentication credentials can be mix between two requests
2302 - MINOR: doc: Bad cli function name.
2303 - MINOR: http: smp_fetch_capture_header_* fetch captured headers
2304 - BUILD: last release inadvertently prepended a "+" in front of the date
2305 - BUG/MEDIUM: stream-int: fix the keep-alive idle connection handler
2306 - BUG/MEDIUM: backend: do not re-initialize the connection's context upon reuse
2307 - BUG: Revert "OPTIM/MEDIUM: epoll: fuse active events into polled ones during polling changes"
2308 - BUG/MINOR: checks: successful check completion must not re-enable MAINT servers
2309 - MINOR: http: try to stick to same server after status 401/407
2310 - BUG/MINOR: http: always disable compression on HTTP/1.0
2311 - OPTIM: poll: restore polling after a poll/stop/want sequence
2312 - OPTIM: http: don't stop polling for read on the client side after a request
2313 - BUG/MEDIUM: checks: unchecked servers could not be enabled anymore
2314 - BUG/MEDIUM: stats: the web interface must check the tracked servers before enabling
2315 - BUG/MINOR: channel: CHN_INFINITE_FORWARD must be unsigned
2316 - BUG/MINOR: stream-int: do not clear the owner upon unregister
2317 - MEDIUM: stats: add support for HTTP keep-alive on the stats page
2318 - BUG/MEDIUM: stats: fix HTTP/1.0 breakage introduced in previous patch
2319 - Revert "MEDIUM: stats: add support for HTTP keep-alive on the stats page"
2320 - MAJOR: channel: add a new flag CF_WAKE_WRITE to notify the task of writes
2321 - OPTIM: session: set the READ_DONTWAIT flag when connecting
2322 - BUG/MINOR: http: don't clear the SI_FL_DONT_WAKE flag between requests
2323 - MINOR: session: factor out the connect time measurement
2324 - MEDIUM: session: prepare to support earlier transitions to the established state
2325 - MEDIUM: stream-int: make si_connect() return an established state when possible
2326 - MINOR: checks: use an inline function for health_adjust()
2327 - OPTIM: session: put unlikely() around the freewheeling code
2328 - MEDIUM: config: report a warning when multiple servers have the same name
2329 - BUG: Revert "OPTIM: poll: restore polling after a poll/stop/want sequence"
2330 - BUILD/MINOR: listener: remove a glibc warning on accept4()
2331 - BUG/MAJOR: connection: fix mismatch between rcv_buf's API and usage
2332 - BUILD: listener: fix recent accept4() again
2333 - BUG/MAJOR: ssl: fix breakage caused by recent fix abf08d9
2334 - BUG/MEDIUM: polling: ensure we update FD status when there's no more activity
2335 - MEDIUM: listener: fix polling management in the accept loop
2336 - MINOR: protocol: improve the proto->drain() API
2337 - MINOR: connection: add a new conn_drain() function
2338 - MEDIUM: tcp: report in tcp_drain() that lingering is already disabled on close
2339 - MEDIUM: connection: update callers of ctrl->drain() to use conn_drain()
2340 - MINOR: connection: add more error codes to report connection errors
2341 - MEDIUM: tcp: report connection error at the connection level
2342 - MEDIUM: checks: make use of chk_report_conn_err() for connection errors
2343 - BUG/MEDIUM: unique_id: HTTP request counter is not stable
2344 - DOC: fix misleading information about SIGQUIT
2345 - BUG/MAJOR: fix freezes during compression
2346 - BUG/MEDIUM: stream-interface: don't wake the task up before end of transfer
2347 - BUILD: fix VERDATE exclusion regex
2348 - CLEANUP: polling: rename "spec_e" to "state"
2349 - DOC: add a diagram showing polling state transitions
2350 - REORG: polling: rename "spec_e" to "state" and "spec_p" to "cache"
2351 - REORG: polling: rename "fd_spec" to "fd_cache"
2352 - REORG: polling: rename the cache allocation functions
2353 - REORG: polling: rename "fd_process_spec_events()" to "fd_process_cached_events()"
2354 - MAJOR: polling: rework the whole polling system
2355 - MAJOR: connection: remove the CO_FL_WAIT_{RD,WR} flags
2356 - MEDIUM: connection: remove conn_{data,sock}_poll_{recv,send}
2357 - MEDIUM: connection: add check for readiness in I/O handlers
2358 - MEDIUM: stream-interface: the polling flags must always be updated in chk_snd_conn
2359 - MINOR: stream-interface: no need to call fd_stop_both() on error
2360 - MEDIUM: connection: no need to recheck FD state
2361 - CLEANUP: connection: use conn_ctrl_ready() instead of checking the flag
2362 - CLEANUP: connection: use conn_xprt_ready() instead of checking the flag
2363 - CLEANUP: connection: fix comments in connection.h to reflect new behaviour.
2364 - OPTIM: raw-sock: don't speculate after a short read if polling is enabled
2365 - MEDIUM: polling: centralize polled events processing
2366 - MINOR: polling: create function fd_compute_new_polled_status()
2367 - MINOR: cli: add more information to the "show info" output
2368 - MEDIUM: listener: add support for limiting the session rate in addition to the connection rate
2369 - MEDIUM: listener: apply a limit on the session rate submitted to SSL
2370 - REORG: stats: move the stats socket states to dumpstats.c
2371 - MINOR: cli: add the new "show pools" command
2372 - BUG/MEDIUM: counters: flush content counters after each request
2373 - BUG/MEDIUM: counters: fix stick-table entry leak when using track-sc2 in connection
2374 - MINOR: tools: add very basic support for composite pointers
2375 - MEDIUM: counters: stop relying on session flags at all
2376 - BUG/MINOR: cli: fix missing break in command line parser
2377 - BUG/MINOR: config: correctly report when log-format headers require HTTP mode
2378 - MAJOR: http: update connection mode configuration
2379 - MEDIUM: http: make keep-alive + httpclose be passive mode
2380 - MAJOR: http: switch to keep-alive mode by default
2381 - BUG/MEDIUM: http: fix regression caused by recent switch to keep-alive by default
2382 - BUG/MEDIUM: listener: improve detection of non-working accept4()
2383 - BUILD: listener: add fcntl.h and unistd.h
2384 - BUG/MINOR: raw_sock: correctly set the MSG_MORE flag
2385
Willy Tarreau6b07bf72013-12-17 00:45:49 +010023862013/12/17 : 1.5-dev21
2387 - MINOR: stats: don't use a monospace font to report numbers
2388 - MINOR: session: remove debugging code
2389 - BUG/MAJOR: patterns: fix double free caused by loading strings from files
2390 - MEDIUM: http: make option http_proxy automatically rewrite the URL
2391 - BUG/MEDIUM: http: cook_cnt() forgets to set its output type
2392 - BUG/MINOR: stats: correctly report throttle rate of low weight servers
2393 - BUG/MEDIUM: checks: servers must not start in slowstart mode
2394 - BUG/MINOR: acl: parser must also stop at comma on ACL-only keywords
2395 - MEDIUM: stream-int: implement a very simplistic idle connection manager
2396 - DOC: update the ROADMAP file
2397
Willy Tarreau11f64d62013-12-16 02:32:37 +010023982013/12/16 : 1.5-dev20
2399 - DOC: add missing options to the manpage
2400 - DOC: add manpage references to all system calls
2401 - DOC: update manpage reference to haproxy-en.txt
2402 - DOC: remove -s and -l options from the manpage
2403 - DOC: missing information for the "description" keyword
2404 - DOC: missing http-send-name-header keyword in keyword table
2405 - MINOR: tools: function my_memmem() to lookup binary contents
2406 - MEDIUM: checks: add send/expect tcp based check
2407 - MEDIUM: backend: Enhance hash-type directive with an algorithm options
2408 - MEDIUM: backend: Implement avalanche as a modifier of the hashing functions.
2409 - DOC: Documentation for hashing function, with test results.
2410 - BUG/MEDIUM: ssl: potential memory leak using verifyhost
2411 - BUILD: ssl: compilation issue with openssl v0.9.6.
2412 - BUG/MINOR: ssl: potential memory leaks using ssl_c_key_alg or ssl_c_sig_alg.
2413 - MINOR: ssl: optimization of verifyhost on wildcard certificates.
2414 - BUG/MINOR: ssl: verifyhost does not match empty strings on wildcard.
2415 - MINOR: ssl: Add statement 'verifyhost' to "server" statements
2416 - CLEANUP: session: remove event_accept() which was not used anymore
2417 - BUG/MINOR: deinit: free fdinfo while doing cleanup
2418 - DOC: minor typo fix in documentation
2419 - BUG/MEDIUM: server: set the macro for server's max weight SRV_UWGHT_MAX to SRV_UWGHT_RANGE
2420 - BUG/MINOR: use the same check condition for server as other algorithms
2421 - DOC: fix typo in comments
2422 - BUG/MINOR: deinit: free server map which is allocated in init_server_map()
2423 - CLEANUP: stream_interface: cleanup loop information in si_conn_send_loop()
2424 - MINOR: buffer: align the last output line of buffer_dump()
2425 - MINOR: buffer: align the last output line if there are less than 8 characters left
2426 - DOC: stick-table: modify the description
2427 - OPTIM: stream_interface: return directly if the connection flag CO_FL_ERROR has been set
2428 - CLEANUP: code style: use tabs to indent codes
2429 - DOC: checkcache: block responses with cacheable cookies
2430 - BUG/MINOR: check_config_validity: check the returned value of stktable_init()
2431 - MEDIUM: haproxy-systemd-wrapper: Use haproxy in same directory
2432 - MEDIUM: systemd-wrapper: Kill child processes when interrupted
2433 - LOW: systemd-wrapper: Write debug information to stdout
2434 - BUG/MINOR: http: fix "set-tos" not working in certain configurations
2435 - MEDIUM: http: add IPv6 support for "set-tos"
2436 - DOC: ssl: update build instructions to use new SSL_* variables
2437 - BUILD/MINOR: systemd: fix compiler warning about unused result
2438 - url32+src - like base32+src but whole url including parameters
2439 - BUG/MINOR: fix forcing fastinter in "on-error"
2440 - CLEANUP: Make parameters of srv_downtime and srv_getinter const
2441 - CLEANUP: Remove unused 'last_slowstart_change' field from struct peer
2442 - MEDIUM: Split up struct server's check element
2443 - MEDIUM: Move result element to struct check
2444 - MEDIUM: Paramatise functions over the check of a server
2445 - MEDIUM: cfgparse: Factor out check initialisation
2446 - MEDIUM: Add state to struct check
2447 - MEDIUM: Move health element to struct check
2448 - MEDIUM: Add helper for task creation for checks
2449 - MEDIUM: Add helper function for failed checks
2450 - MEDIUM: Log agent fail, stopped or down as info
2451 - MEDIUM: Remove option lb-agent-chk
2452 - MEDIUM: checks: Add supplementary agent checks
2453 - MEDIUM: Do not mark a server as down if the agent is unavailable
2454 - MEDIUM: Set rise and fall of agent checks to 1
2455 - MEDIUM: Add enable and disable agent unix socket commands
2456 - MEDIUM: Add DRAIN state and report it on the stats page
2457 - BUILD/MINOR: missing header file
2458 - CLEANUP: regex: Create regex_comp function that compiles regex using compilation options
2459 - CLEANUP: The function "regex_exec" needs the string length but in many case they expect null terminated char.
2460 - MINOR: http: some exported functions were not in the header file
2461 - MINOR: http: change url_decode to return the size of the decoded string.
2462 - BUILD/MINOR: missing header file
2463 - BUG/MEDIUM: sample: The function v4tov6 cannot support input and output overlap
2464 - BUG/MINOR: arg: fix error reporting for add-header/set-header sample fetch arguments
2465 - MINOR: sample: export the generic sample conversion parser
2466 - MINOR: sample: export sample_casts
2467 - MEDIUM: acl: use the fetch syntax 'fetch(args),conv(),conv()' into the ACL keyword
2468 - MINOR: stick-table: use smp_expr_output_type() to retrieve the output type of a "struct sample_expr"
2469 - MINOR: sample: provide the original sample_conv descriptor struct to the argument checker function.
2470 - MINOR: tools: Add a function to convert buffer to an ipv6 address
2471 - MINOR: acl: export acl arrays
2472 - MINOR: acl: Extract the pattern parsing and indexation from the "acl_read_patterns_from_file()" function
2473 - MINOR: acl: Extract the pattern matching function
2474 - MINOR: sample: Define new struct sample_storage
2475 - MEDIUM: acl: associate "struct sample_storage" to each "struct acl_pattern"
2476 - REORG: acl/pattern: extract pattern matching from the acl file and create pattern.c
2477 - MEDIUM: pattern: create pattern expression
2478 - MEDIUM: pattern: rename "acl" prefix to "pat"
2479 - MEDIUM: sample: let the cast functions set their output type
2480 - MINOR: sample: add a private field to the struct sample_conv
2481 - MINOR: map: Define map types
2482 - MEDIUM: sample: add the "map" converter
2483 - MEDIUM: http: The redirect strings follows the log format rules.
2484 - BUG/MINOR: acl: acl parser does not recognize empty converter list
2485 - BUG/MINOR: map: The map list was declared in the map.h file
2486 - MINOR: map: Cleanup the initialisation of map descriptors.
2487 - MEDIUM: map: merge identical maps
2488 - BUG/MEDIUM: pattern: Pattern node has type of "struct pat_idx_elt" in place of "struct eb_node"
2489 - BUG/MEDIUM: map: Bad map file parser
2490 - CLEANUP/MINOR: standard: use the system define INET6_ADDRSTRLEN in place of MAX_IP6_LEN
2491 - BUG/MEDIUM: sample: conversion from str to ipv6 may read data past end
2492 - MINOR: map: export map_get_reference() function
2493 - MINOR: pattern: Each pattern sets the expected input type
2494 - MEDIUM: acl: Last patch change the output type
2495 - MEDIUM: pattern: Extract the index process from the pat_parse_*() functions
2496 - MINOR: standard: The function parse_binary() can use preallocated buffer
2497 - MINOR: regex: Change the struct containing regex
2498 - MINOR: regex: Copy the original regex expression into string.
2499 - MINOR: pattern: add support for compiling patterns for lookups
2500 - MINOR: pattern: make the pattern matching function return a pointer to the matched element
2501 - MINOR: map: export parse output sample functions
2502 - MINOR: pattern: add function to lookup a specific entry in pattern list
2503 - MINOR: pattern/map: Each pattern must free the associated sample
2504 - MEDIUM: dumpstat: make the CLI parser understand the backslash as an escape char
2505 - MEDIUM: map: dynamic manipulation of maps
2506 - BUG/MEDIUM: unique_id: junk in log on empty unique_id
2507 - BUG/MINOR: log: junk at the end of syslog packet
2508 - MINOR: Makefile: provide cscope rule
2509 - DOC: compression: chunk are not compressed anymore
2510 - MEDIUM: session: disable lingering on the server when the client aborts
2511 - BUG/MEDIUM: prevent gcc from moving empty keywords lists into BSS
2512 - DOC: remove the comment saying that SSL certs are not checked on the server side
2513 - BUG: counters: third counter was not stored if others unset
2514 - BUG/MAJOR: http: don't emit the send-name-header when no server is available
2515 - BUG/MEDIUM: http: "option checkcache" fails with the no-cache header
2516 - BUG/MAJOR: http: sample prefetch code was not properly migrated
2517 - BUG/MEDIUM: splicing: fix abnormal CPU usage with splicing
2518 - BUG/MINOR: stream_interface: don't call chk_snd() on polled events
2519 - OPTIM: splicing: use splice() for the last block when relevant
2520 - MEDIUM: sample: handle comma-delimited converter list
2521 - MINOR: sample: fix sample_process handling of unstable data
2522 - CLEANUP: acl: move the 3 remaining sample fetches to samples.c
2523 - MINOR: sample: add a new "date" fetch to return the current date
2524 - MINOR: samples: add the http_date([<offset>]) sample converter.
2525 - DOC: minor improvements to the part on the stats socket.
2526 - MEDIUM: sample: systematically pass the keyword pointer to the keyword
2527 - MINOR: payload: split smp_fetch_rdp_cookie()
2528 - MINOR: counters: factor out smp_fetch_sc*_tracked
2529 - MINOR: counters: provide a generic function to retrieve a stkctr for sc* and src.
2530 - MEDIUM: counters: factor out smp_fetch_sc*_get_gpc0
2531 - MEDIUM: counters: factor out smp_fetch_sc*_gpc0_rate
2532 - MEDIUM: counters: factor out smp_fetch_sc*_inc_gpc0
2533 - MEDIUM: counters: factor out smp_fetch_sc*_clr_gpc0
2534 - MEDIUM: counters: factor out smp_fetch_sc*_conn_cnt
2535 - MEDIUM: counters: factor out smp_fetch_sc*_conn_rate
2536 - MEDIUM: counters: factor out smp_fetch_sc*_conn_cur
2537 - MEDIUM: counters: factor out smp_fetch_sc*_sess_cnt
2538 - MEDIUM: counters: factor out smp_fetch_sc*_sess_rate
2539 - MEDIUM: counters: factor out smp_fetch_sc*_http_req_cnt
2540 - MEDIUM: counters: factor out smp_fetch_sc*_http_req_rate
2541 - MEDIUM: counters: factor out smp_fetch_sc*_http_err_cnt
2542 - MEDIUM: counters: factor out smp_fetch_sc*_http_err_rate
2543 - MEDIUM: counters: factor out smp_fetch_sc*_kbytes_in
2544 - MEDIUM: counters: factor out smp_fetch_sc*_bytes_in_rate
2545 - MEDIUM: counters: factor out smp_fetch_sc*_kbytes_out
2546 - MEDIUM: counters: factor out smp_fetch_sc*_bytes_out_rate
2547 - MEDIUM: counters: factor out smp_fetch_sc*_trackers
2548 - MINOR: session: make the number of stick counter entries more configurable
2549 - MEDIUM: counters: support passing the counter number as a fetch argument
2550 - MEDIUM: counters: support looking up a key in an alternate table
2551 - MEDIUM: cli: adjust the method for feeding frequency counters in tables
2552 - MINOR: cli: make it possible to enter multiple values at once with "set table"
2553 - MINOR: payload: allow the payload sample fetches to retrieve arbitrary lengths
2554 - BUG/MINOR: cli: "clear table" must not kill entries that don't match condition
2555 - MINOR: ssl: use MAXPATHLEN instead of PATH_MAX
2556 - MINOR: config: warn when a server with no specific port uses rdp-cookie
2557 - BUG/MEDIUM: unique_id: HTTP request counter must be unique!
2558 - DOC: add a mention about the limited chunk size
2559 - BUG/MEDIUM: fix broken send_proxy on FreeBSD
2560 - MEDIUM: stick-tables: flush old entries upon soft-stop
2561 - MINOR: tcp: add new "close" action for tcp-response
2562 - MINOR: payload: provide the "res.len" fetch method
2563 - BUILD: add SSL_INC/SSL_LIB variables to force the path to openssl
2564 - MINOR: http: compute response time before processing headers
2565 - BUG/MINOR: acl: fix improper string size assignment in proxy argument
2566 - BUG/MEDIUM: http: accept full buffers on smp_prefetch_http
2567 - BUG/MINOR: acl: implicit arguments of ACL keywords were not properly resolved
2568 - BUG/MEDIUM: session: risk of crash on out of memory conditions
2569 - BUG/MINOR: peers: set the accept date in outgoing connections
2570 - BUG/MEDIUM: tcp: do not skip tracking rules on second pass
2571 - BUG/MEDIUM: acl: do not evaluate next terms after a miss
2572 - MINOR: acl: add a warning when an ACL keyword is used without any value
2573 - MINOR: tcp: don't use tick_add_ifset() when timeout is known to be set
2574 - BUG/MINOR: acl: remove patterns from the tree before freeing them
2575 - MEDIUM: backend: add support for the wt6 hash
2576 - OPTIM/MEDIUM: epoll: fuse active events into polled ones during polling changes
2577 - OPTIM/MINOR: mark the source address as already known on accept()
2578 - BUG/MINOR: stats: don't count tarpitted connections twice
2579 - CLEANUP: http: homogenize processing of denied req counter
2580 - CLEANUP: http: merge error handling for req* and http-request *
2581 - BUG/MEDIUM: http: fix possible parser crash when parsing erroneous "http-request redirect" rules
2582 - BUG/MINOR: http: fix build warning introduced with url32/url32_src
2583 - BUG/MEDIUM: checks: fix slow start regression after fix attempt
2584 - BUG/MAJOR: server: weight calculation fails for map-based algorithms
2585 - MINOR: stats: report correct throttling percentage for servers in slowstart
2586 - OPTIM: connection: fold the error handling with handshake handling
2587 - MINOR: peers: accept to learn strings of different lengths
2588 - BUG/MAJOR: fix haproxy crash when using server tracking instead of checks
2589 - BUG/MAJOR: check: fix haproxy crash during soft-stop/soft-start
2590 - BUG/MINOR: stats: do not report "via" on tracking servers in maintenance
2591 - BUG/MINOR: connection: fix typo in error message report
2592 - BUG/MINOR: backend: fix target address retrieval in transparent mode
2593 - BUG/MINOR: config: report the correct track-sc number in tcp-rules
2594 - BUG/MINOR: log: fix log-format parsing errors
2595 - DOC: add some information about how to apply converters to samples
2596 - MINOR: acl/pattern: use types different from int to clarify who does what.
2597 - MINOR: pattern: import acl_find_match_name() into pattern.h
2598 - MEDIUM: stick-tables: support automatic conversion from ipv4<->ipv6
2599 - MEDIUM: log-format: relax parsing of '%' followed by unsupported characters
2600 - BUG/MINOR: http: usual deinit stuff in last commit
2601 - BUILD: log: silent a warning about isblank() with latest patches
2602 - BUG/MEDIUM: checks: fix health check regression causing them to depend on declaration order
2603 - BUG/MEDIUM: checks: fix a long-standing issue with reporting connection errors
2604 - BUG/MINOR: checks: don't consider errno and use conn->err_code
2605 - BUG/MEDIUM: checks: also update the DRAIN state from the web interface
2606 - MINOR: stats: remove some confusion between the DRAIN state and NOLB
2607 - BUG/MINOR: tcp: check that no error is pending during a connect probe
2608 - BUG/MINOR: connection: check EINTR when sending a PROXY header
2609 - MEDIUM: connection: set the socket shutdown flags on socket errors
2610 - BUG/MEDIUM: acl: fix regression introduced by latest converters support
2611 - MINOR: connection: clear errno prior to checking for errors
2612 - BUG/MINOR: checks: do not trust errno in write event before any syscall
2613 - MEDIUM: checks: centralize error reporting
2614 - OPTIM: checks: don't poll on recv when using plain TCP connects
2615 - OPTIM: checks: avoid setting SO_LINGER twice
2616 - MINOR: tools: add a generic binary hex string parser
2617 - BUG/MEDIUM: checks: tcp-check: do not poll when there's nothing to send
2618 - BUG/MEDIUM: check: tcp-check might miss some outgoing data when socket buffers are full
2619 - BUG/MEDIUM: args: fix double free on error path in argument expression parser
2620 - BUG/MINOR: acl: fix sample expression error reporting
2621 - BUG/MINOR: checks: tcp-check actions are enums, not flags
2622 - MEDIUM: checks: make tcp-check perform multiple send() at once
2623 - BUG/MEDIUM: stick: completely remove the unused flag from the store entries
2624 - OPTIM: ebtree: pack the struct eb_node to avoid holes on 64-bit
2625 - BUG/MEDIUM: stick-tables: complete the latest fix about store-responses
2626 - CLEANUP: stream_interface: remove unused field err_loc
2627 - MEDIUM: stats: don't use conn->xprt_st anymore
2628 - MINOR: session: add a simple function to retrieve a session from a task
2629 - MEDIUM: stats: don't use conn->xprt_ctx anymore
2630 - MEDIUM: peers: don't rely on conn->xprt_ctx anymore
2631 - MINOR: http: prevent smp_fetch_url_{ip,port} from using si->conn
2632 - MINOR: connection: make it easier to emit proxy protocol for unknown addresses
2633 - MEDIUM: stats: prepare the HTTP stats I/O handler to support more states
2634 - MAJOR: stats: move the HTTP stats handling to its applet
2635 - MEDIUM: stats: move request argument processing to the final step
2636 - MEDIUM: session: detect applets from the session by using s->target
2637 - MAJOR: session: check for a connection to an applet in sess_prepare_conn_req()
2638 - MAJOR: session: pass applet return traffic through the response analysers
2639 - MEDIUM: stream-int: split the shutr/shutw functions between applet and conn
2640 - MINOR: stream-int: make the shutr/shutw functions void
2641 - MINOR: obj: provide a safe and an unsafe access to pointed objects
2642 - MINOR: connection: add a field to store an object type
2643 - MINOR: connection: always initialize conn->objt_type to OBJ_TYPE_CONN
2644 - MEDIUM: stream interface: move the peers' ptr into the applet context
2645 - MINOR: stream-interface: move the applet context to its own struct
2646 - MINOR: obj: introduce a new type appctx
2647 - MINOR: stream-int: rename ->applet to ->appctx
2648 - MINOR: stream-int: split si_prepare_embedded into si_prepare_none and si_prepare_applet
2649 - MINOR: stream-int: add a new pointer to the end point
2650 - MEDIUM: stream-interface: set the pointer to the applet into the applet context
2651 - MAJOR: stream interface: remove the ->release function pointer
2652 - MEDIUM: stream-int: make ->end point to the connection or the appctx
2653 - CLEANUP: stream-int: remove obsolete si_ctrl function
2654 - MAJOR: stream-int: stop using si->conn and use si->end instead
2655 - MEDIUM: stream-int: do not allocate a connection in parallel to applets
2656 - MEDIUM: session: attach incoming connection to target on embryonic sessions
2657 - MINOR: connection: add conn_init() to (re)initialize a connection
2658 - MINOR: checks: call conn_init() to properly initialize the connection.
2659 - MINOR: peers: make use of conn_init() to initialize the connection
2660 - MINOR: session: use conn_init() to initialize the connections
2661 - MINOR: http: use conn_init() to reinitialize the server connection
2662 - MEDIUM: connection: replace conn_prepare with conn_assign
2663 - MINOR: get rid of si_takeover_conn()
2664 - MINOR: connection: add conn_new() / conn_free()
2665 - MAJOR: connection: add two new flags to indicate readiness of control/transport
2666 - MINOR: stream-interface: introduce si_reset() and si_set_state()
2667 - MINOR: connection: reintroduce conn_prepare to set the protocol and transport
2668 - MINOR: connection: replace conn_assign with conn_attach
2669 - MEDIUM: stream-interface: introduce si_attach_conn to replace si_prepare_conn
2670 - MAJOR: stream interface: dynamically allocate the outgoing connection
2671 - MEDIUM: connection: move the send_proxy offset to the connection
2672 - MINOR: connection: check for send_proxy during the connect(), not the SI
2673 - MEDIUM: connection: merge the send_proxy and local_send_proxy calls
2674 - MEDIUM: stream-int: replace occurrences of si->appctx with si_appctx()
2675 - MEDIUM: stream-int: return the allocated appctx in stream_int_register_handler()
2676 - MAJOR: stream-interface: dynamically allocate the applet context
2677 - MEDIUM: session: automatically register the applet designated by the target
2678 - MEDIUM: stats: delay appctx initialization
2679 - CLEANUP: peers: use less confusing state/status code names
2680 - MEDIUM: peers: delay appctx initialization
2681 - MINOR: stats: provide some appctx information in "show sess all"
2682 - DIET/MINOR: obj: pack the obj_type enum to 8 bits
2683 - DIET/MINOR: connection: rearrange a few fields to save 8 bytes in the struct
2684 - DIET/MINOR: listener: rearrange a few fields in struct listener to save 16 bytes
2685 - DIET/MINOR: proxy: rearrange a few fields in struct proxy to save 16 bytes
2686 - DIET/MINOR: session: reduce the struct session size by 8 bytes
2687 - DIET/MINOR: stream-int: rearrange a few fields in struct stream_interface to save 8 bytes
2688 - DIET/MINOR: http: reduce the size of struct http_txn by 8 bytes
2689 - MINOR: http: switch the http state to an enum
2690 - MINOR: http: use an enum for the auth method in http_auth_data
2691 - DIET/MINOR: task: reduce struct task size by 8 bytes
2692 - MINOR: stream_interface: add reporting of ressouce allocation errors
2693 - MINOR: session: report lack of resources using the new stream-interface's error code
2694 - BUILD: simplify the date and version retrieval in the makefile
2695 - BUILD: prepare the makefile to skip format lines in SUBVERS and VERDATE
2696 - BUILD: use format tags in VERDATE and SUBVERS files
2697 - BUG/MEDIUM: channel: bo_getline() must wait for \n until buffer is full
2698 - CLEANUP: check: server port is unsigned
2699 - BUG/MEDIUM: checks: agent doesn't get the response if server does not closes
2700 - MINOR: tools: buf2ip6 must not modify output on failure
2701 - MINOR: pattern: do not assign SMP_TYPES by default to patterns
2702 - MINOR: sample: make sample_parse_expr() use memprintf() to report parse errors
2703 - MINOR: arg: improve wording on error reporting
2704 - BUG/MEDIUM: sample: simplify and fix the argument parsing
2705 - MEDIUM: acl: fix the argument parser to let the lower layer report detailed errors
2706 - MEDIUM: acl: fix the initialization order of the ACL expression
2707 - CLEANUP: acl: remove useless blind copy-paste from sample converters
2708 - TESTS: add regression tests for ACL and sample expression parsers
2709 - BUILD: time: adapt the type of TV_ETERNITY to the local system
2710 - MINOR: chunks: allocate the trash chunks before parsing the config
2711 - BUILD: definitely silence some stupid GCC warnings
2712 - MINOR: chunks: always initialize the output chunk in get_trash_chunk()
2713 - MINOR: checks: improve handling of the servers tracking chain
2714 - REORG: checks: retrieve the check-specific defines from server.h to checks.h
2715 - MINOR: checks: use an enum instead of flags to report a check result
2716 - MINOR: checks: rename the state flags
2717 - MINOR: checks: replace state DISABLED with CONFIGURED and ENABLED
2718 - MINOR: checks: use check->state instead of srv->state & SRV_CHECKED
2719 - MINOR: checks: fix agent check interval computation
2720 - MINOR: checks: add a PAUSED state for the checks
2721 - MINOR: checks: create the agent tasks even when no check is configured
2722 - MINOR: checks: add a flag to indicate what check is an agent
2723 - MEDIUM: checks: enable agent checks even if health checks are disabled
2724 - BUG/MEDIUM: checks: ensure we can enable a server after boot
2725 - BUG/MEDIUM: checks: tracking servers must not inherit the MAINT flag
2726 - BUG/MAJOR: session: repair tcp-request connection rules
2727 - BUILD: fix SUBVERS extraction in the Makefile
2728 - BUILD: pattern: silence a warning about uninitialized value
2729 - BUILD: log: fix build warning on Solaris
2730 - BUILD: dumpstats: fix build error on Solaris
2731 - DOC: move option pgsql-check to the correct place
2732 - DOC: move option tcp-check to the proper place
2733 - MINOR: connection: add simple functions to report connection readiness
2734 - MEDIUM: connection: centralize handling of nolinger in fd management
2735 - OPTIM: http: set CF_READ_DONTWAIT on response message
2736 - OPTIM: http: do not re-enable reading on client side while closing the server side
2737 - MINOR: config: add option http-keep-alive
2738 - MEDIUM: connection: inform si_alloc_conn() whether existing conn is OK or not
2739 - MAJOR: stream-int: handle the connection reuse in si_connect()
2740 - MAJOR: http: add the keep-alive transition on the server side
2741 - MAJOR: backend: enable connection reuse
2742 - MINOR: http: add option prefer-last-server
2743 - MEDIUM: http: do not report connection errors for second and further requests
2744
Willy Tarreaueab1dc62013-06-17 15:10:25 +020027452013/06/17 : 1.5-dev19
2746 - MINOR: stats: remove the autofocus on the scope input field
2747 - BUG/MEDIUM: Fix crt-list file parsing error: filtered name was ignored.
2748 - BUG/MEDIUM: ssl: EDH ciphers are not usable if no DH parameters present in pem file.
2749 - BUG/MEDIUM: shctx: makes the code independent on SSL runtime version.
2750 - MEDIUM: ssl: improve crt-list format to support negation
2751 - BUG: ssl: fix crt-list for clients not supporting SNI
2752 - MINOR: stats: show soft-stopped servers in different color
2753 - BUG/MINOR: config: "source" does not work in defaults section
2754 - BUG: regex: fix pcre compile error when using JIT
2755 - MINOR: ssl: add pattern fetch 'ssl_c_sha1'
2756 - BUG: ssl: send payload gets corrupted if tune.ssl.maxrecord is used
2757 - MINOR: show PCRE version and JIT status in -vv
2758 - BUG/MINOR: jit: don't rely on USE flag to detect support
2759 - DOC: readme: add suggestion to link against static openssl
2760 - DOC: examples: provide simplified ssl configuration
2761 - REORG: tproxy: prepare the transparent proxy defines for accepting other OSes
2762 - MINOR: tproxy: add support for FreeBSD
2763 - MINOR: tproxy: add support for OpenBSD
2764 - DOC: examples: provide an example of transparent proxy configuration for FreeBSD 8
2765 - CLEANUP: fix minor typo in error message.
2766 - CLEANUP: fix missing include <string.h> in proto/listener.h
2767 - CLEANUP: protect checks.h from multiple inclusions
2768 - MINOR: compression: acl "res.comp" and fetch "res.comp_algo"
2769 - BUG/MINOR: http: add-header/set-header did not accept the ACL condition
2770 - BUILD: mention in the Makefile that USE_PCRE_JIT is for libpcre >= 8.32
2771 - BUG/MEDIUM: splicing is broken since 1.5-dev12
2772 - BUG/MAJOR: acl: add implicit arguments to the resolve list
2773 - BUG/MINOR: tcp: fix error reporting for TCP rules
2774 - CLEANUP: peers: remove a bit of spaghetti to prepare for the next bugfix
2775 - MINOR: stick-table: allow to allocate an entry without filling it
2776 - BUG/MAJOR: peers: fix an overflow when syncing strings larger than 16 bytes
2777 - MINOR: session: only call http_send_name_header() when changing the server
2778 - MINOR: tcp: report the erroneous word in tcp-request track*
2779 - BUG/MAJOR: backend: consistent hash can loop forever in certain circumstances
2780 - BUG/MEDIUM: log: fix regression on log-format handling
2781 - MEDIUM: log: report file name, line number, and directive name with log-format errors
2782 - BUG/MINOR: cli: "clear table" did not work anymore without a key
2783 - BUG/MINOR: cli: "clear table xx data.xx" does not work anymore
2784 - BUG/MAJOR: http: compression still has defects on chunked responses
2785 - BUG/MINOR: stats: fix confirmation links on the stats interface
2786 - BUG/MINOR: stats: the status bar does not appear anymore after a change
2787 - BUG/MEDIUM: stats: allocate the stats frontend also on "stats bind-process"
2788 - BUG/MEDIUM: stats: fix a regression when dealing with POST requests
2789 - BUG/MINOR: fix unterminated ACL array in compression
2790 - BUILD: last fix broke non-linux platforms
2791 - MINOR: init: indicate the SSL runtime version on -vv.
2792 - BUG/MEDIUM: compression: the deflate algorithm must use global settings as well
2793 - BUILD: stdbool is not portable (again)
2794 - DOC: readme: add a small reminder about restrictions to respect in the code
2795 - MINOR: ebtree: add new eb_next_dup/eb_prev_dup() functions to visit duplicates
2796 - BUG/MINOR: acl: fix a double free during exit when using PCRE_JIT
2797 - DOC: fix wrong copy-paste in the rspdel example
2798 - MINOR: counters: make it easier to extend the amount of tracked counters
2799 - MEDIUM: counters: add support for tracking a third counter
2800 - MEDIUM: counters: add a new "gpc0_rate" counter in stick-tables
2801 - BUG/MAJOR: http: always ensure response buffer has some room for a response
2802 - MINOR: counters: add fetch/acl sc*_tracked to indicate whether a counter is tracked
2803 - MINOR: defaults: allow REQURI_LEN and CAPTURE_LEN to be redefined
2804 - MINOR: log: add a new flag 'L' for locally processed requests
2805 - MINOR: http: add full-length header fetch methods
2806 - MEDIUM: protocol: implement a "drain" function in protocol layers
2807 - MEDIUM: http: add a new "http-response" ruleset
2808 - MEDIUM: http: add the "set-nice" action to http-request and http-response
2809 - MEDIUM: log: add a log level override value in struct session
2810 - MEDIUM: http: add support for action "set-log-level" in http-request/http-response
2811 - MEDIUM: http: add support for "set-tos" in http-request/http-response
2812 - MEDIUM: http: add the "set-mark" action on http-request/http-response rules
2813 - MEDIUM: tcp: add "tcp-request connection expect-proxy layer4"
2814 - MEDIUM: acl: automatically detect the type of certain fetches
2815 - MEDIUM: acl: remove a lot of useless ACLs that are equivalent to their fetches
2816 - MEDIUM: acl: remove 15 additional useless ACLs that are equivalent to their fetches
2817 - DOC: major reorg of ACL + sample fetch
2818 - CLEANUP: http: remove the bogus urlp_ip ACL match
2819 - MINOR: acl: add the new "env()" fetch method to retrieve an environment variable
2820 - BUG/MINOR: acl: correctly consider boolean fetches when doing casts
2821 - BUG/CRITICAL: fix a possible crash when using negative header occurrences
2822 - DOC: update ROADMAP file
2823 - MEDIUM: counters: use sc0/sc1/sc2 instead of sc1/sc2/sc3
2824 - MEDIUM: stats: add proxy name filtering on the statistic page
2825
Willy Tarreau289dd922013-04-03 02:26:31 +020028262013/04/03 : 1.5-dev18
2827 - DOCS: Add explanation of intermediate certs to crt paramater
2828 - DOC: typo and minor fixes in compression paragraph
2829 - MINOR: config: http-request configuration error message misses new keywords
2830 - DOC: minor typo fix in documentation
2831 - BUG/MEDIUM: ssl: ECDHE ciphers not usable without named curve configured.
2832 - MEDIUM: ssl: add bind-option "strict-sni"
2833 - MEDIUM: ssl: add mapping from SNI to cert file using "crt-list"
2834 - MEDIUM: regex: Use PCRE JIT in acl
2835 - DOC: simplify bind option "interface" explanation
2836 - DOC: tfo: bump required kernel to linux-3.7
2837 - BUILD: add explicit support for TFO with USE_TFO
2838 - MEDIUM: New cli option -Ds for systemd compatibility
2839 - MEDIUM: add haproxy-systemd-wrapper
2840 - MEDIUM: add systemd service
2841 - BUG/MEDIUM: systemd-wrapper: don't leak zombie processes
2842 - BUG/MEDIUM: remove supplementary groups when changing gid
2843 - BUG/MEDIUM: config: fix parser crash with bad bind or server address
2844 - BUG/MINOR: Correct logic in cut_crlf()
2845 - CLEANUP: checks: Make desc argument to set_server_check_status const
2846 - CLEANUP: dumpstats: Make cli_release_handler() static
2847 - MEDIUM: server: Break out set weight processing code
2848 - MEDIUM: server: Allow relative weights greater than 100%
2849 - MEDIUM: server: Tighten up parsing of weight string
2850 - MEDIUM: checks: Add agent health check
2851 - BUG/MEDIUM: ssl: openssl 0.9.8 doesn't open /dev/random before chroot
2852 - BUG/MINOR: time: frequency counters are not totally accurate
2853 - BUG/MINOR: http: don't process abortonclose when request was sent
2854 - BUG/MEDIUM: stream_interface: don't close outgoing connections on shutw()
2855 - BUG/MEDIUM: checks: ignore late resets after valid responses
2856 - DOC: fix bogus recommendation on usage of gpc0 counter
2857 - BUG/MINOR: http-compression: lookup Cache-Control in the response, not the request
2858 - MINOR: signal: don't block SIGPROF by default
2859 - OPTIM: epoll: make use of EPOLLRDHUP
2860 - OPTIM: splice: detect shutdowns and avoid splice() == 0
2861 - OPTIM: splice: assume by default that splice is working correctly
2862 - BUG/MINOR: log: temporary fix for lost SSL info in some situations
2863 - BUG/MEDIUM: peers: only the last peers section was used by tables
2864 - BUG/MEDIUM: config: verbosely reject peers sections with multiple local peers
2865 - BUG/MINOR: epoll: use a fix maxevents argument in epoll_wait()
2866 - BUG/MINOR: config: fix improper check for failed memory alloc in ACL parser
2867 - BUG/MINOR: config: free peer's address when exiting upon parsing error
2868 - BUG/MINOR: config: check the proper variable when parsing log minlvl
2869 - BUG/MEDIUM: checks: ensure the health_status is always within bounds
2870 - BUG/MINOR: cli: show sess should always validate s->listener
2871 - BUG/MINOR: log: improper NULL return check on utoa_pad()
2872 - CLEANUP: http: remove a useless null check
2873 - CLEANUP: tcp/unix: remove useless NULL check in {tcp,unix}_bind_listener()
2874 - BUG/MEDIUM: signal: signal handler does not properly check for signal bounds
2875 - BUG/MEDIUM: tools: off-by-one in quote_arg()
2876 - BUG/MEDIUM: uri_auth: missing NULL check and memory leak on memory shortage
2877 - BUG/MINOR: unix: remove the 'level' field from the ux struct
2878 - CLEANUP: http: don't try to deinitialize http compression if it fails before init
2879 - CLEANUP: config: slowstart is never negative
2880 - CLEANUP: config: maxcompcpuusage is never negative
2881 - BUG/MEDIUM: log: emit '-' for empty fields again
2882 - BUG/MEDIUM: checks: fix a race condition between checks and observe layer7
2883 - BUILD: fix a warning emitted by isblank() on non-c99 compilers
2884 - BUILD: improve the makefile's support for libpcre
2885 - MEDIUM: halog: add support for counting per source address (-ic)
2886 - MEDIUM: tools: make str2sa_range support all address syntaxes
2887 - MEDIUM: config: make use of str2sa_range() instead of str2sa()
2888 - MEDIUM: config: use str2sa_range() to parse server addresses
2889 - MEDIUM: config: use str2sa_range() to parse peers addresses
2890 - MINOR: tests: add a config file to ease address parsing tests.
2891 - MINOR: ssl: add a global tunable for the max SSL/TLS record size
2892 - BUG/MINOR: syscall: fix NR_accept4 system call on sparc/linux
2893 - BUILD/MINOR: syscall: add definition of NR_accept4 for ARM
2894 - MINOR: config: report missing peers section name
2895 - BUG/MEDIUM: tools: fix bad character handling in str2sa_range()
2896 - BUG/MEDIUM: stats: never apply "unix-bind prefix" to the global stats socket
2897 - MINOR: tools: prepare str2sa_range() to return an error message
2898 - BUG/MEDIUM: checks: don't call connect() on unsupported address families
2899 - MINOR: tools: prepare str2sa_range() to accept a prefix
2900 - MEDIUM: tools: make str2sa_range() parse unix addresses too
2901 - MEDIUM: config: make str2listener() use str2sa_range() to parse unix addresses
2902 - MEDIUM: config: use a single str2sa_range() call to parse bind addresses
2903 - MEDIUM: config: use str2sa_range() to parse log addresses
2904 - CLEANUP: tools: remove str2sun() which is not used anymore.
2905 - MEDIUM: config: add complete support for str2sa_range() in dispatch
2906 - MEDIUM: config: add complete support for str2sa_range() in server addr
2907 - MEDIUM: config: add complete support for str2sa_range() in 'server'
2908 - MEDIUM: config: add complete support for str2sa_range() in 'peer'
2909 - MEDIUM: config: add complete support for str2sa_range() in 'source' and 'usesrc'
2910 - CLEANUP: minor cleanup in str2sa_range() and str2ip()
2911 - CLEANUP: config: do not use multiple errmsg at once
2912 - MEDIUM: tools: support specifying explicit address families in str2sa_range()
2913 - MAJOR: listener: support inheriting a listening fd from the parent
2914 - MAJOR: tools: support environment variables in addresses
2915 - BUG/MEDIUM: http: add-header should not emit "-" for empty fields
2916 - BUG/MEDIUM: config: ACL compatibility check on "redirect" was wrong
2917 - BUG/MEDIUM: http: fix another issue caused by http-send-name-header
2918 - DOC: mention the new HTTP 307 and 308 redirect statues
2919 - MEDIUM: poll: do not use FD_* macros anymore
2920 - BUG/MAJOR: ev_select: disable the select() poller if maxsock > FD_SETSIZE
2921 - BUG/MINOR: acl: ssl_fc_{alg,use}_keysize must parse integers, not strings
2922 - BUG/MINOR: acl: ssl_c_used, ssl_fc{,_has_crt,_has_sni} take no pattern
2923 - BUILD: fix usual isdigit() warning on solaris
2924 - BUG/MEDIUM: tools: vsnprintf() is not always reliable on Solaris
2925 - OPTIM: buffer: remove one jump in buffer_count()
2926 - OPTIM: http: improve branching in chunk size parser
2927 - OPTIM: http: optimize the response forward state machine
2928 - BUILD: enable poll() by default in the makefile
2929 - BUILD: add explicit support for Mac OS/X
2930 - BUG/MAJOR: http: use a static storage for sample fetch context
2931 - BUG/MEDIUM: ssl: improve error processing and reporting in ssl_sock_load_cert_list_file()
2932 - BUG/MAJOR: http: fix regression introduced by commit a890d072
2933 - BUG/MAJOR: http: fix regression introduced by commit d655ffe
2934 - BUG/CRITICAL: using HTTP information in tcp-request content may crash the process
2935 - MEDIUM: acl: remove flag ACL_MAY_LOOKUP which is improperly used
2936 - MEDIUM: samples: use new flags to describe compatibility between fetches and their usages
2937 - MINOR: log: indicate it when some unreliable sample fetches are logged
2938 - MEDIUM: samples: move payload-based fetches and ACLs to their own file
2939 - MINOR: backend: rename sample fetch functions and declare the sample keywords
2940 - MINOR: frontend: rename sample fetch functions and declare the sample keywords
2941 - MINOR: listener: rename sample fetch functions and declare the sample keywords
2942 - MEDIUM: http: unify acl and sample fetch functions
2943 - MINOR: session: rename sample fetch functions and declare the sample keywords
2944 - MAJOR: acl: make all ACLs reference the fetch function via a sample.
2945 - MAJOR: acl: remove the arg_mask from the ACL definition and use the sample fetch's
2946 - MAJOR: acl: remove fetch argument validation from the ACL struct
2947 - MINOR: http: add new direction-explicit sample fetches for headers and cookies
2948 - MINOR: payload: add new direction-explicit sample fetches
2949 - CLEANUP: acl: remove ACL hooks which were never used
2950 - MEDIUM: proxy: remove acl_requires and just keep a flag "http_needed"
2951 - MINOR: sample: provide a function to report the name of a sample check point
2952 - MAJOR: acl: convert all ACL requires to SMP use+val instead of ->requires
2953 - CLEANUP: acl: remove unused references to ACL_USE_*
2954 - MINOR: http: replace acl_parse_ver with acl_parse_str
2955 - MEDIUM: acl: move the ->parse, ->match and ->smp fields to acl_expr
2956 - MAJOR: acl: add option -m to change the pattern matching method
2957 - MINOR: acl: remove the use_count in acl keywords
2958 - MEDIUM: acl: have a pointer to the keyword name in acl_expr
2959 - MEDIUM: acl: support using sample fetches directly in ACLs
2960 - MEDIUM: http: remove val_usr() to validate user_lists
2961 - MAJOR: sample: maintain a per-proxy list of the fetch args to resolve
2962 - MINOR: ssl: add support for the "alpn" bind keyword
2963 - MINOR: http: status code 303 is HTTP/1.1 only
2964 - MEDIUM: http: implement redirect 307 and 308
2965 - MINOR: http: status 301 should not be marked non-cacheable
2966
Willy Tarreaua3ecbd92012-12-28 15:04:05 +010029672012/12/28 : 1.5-dev17
2968 - MINOR: ssl: Setting global tune.ssl.cachesize value to 0 disables SSL session cache.
2969 - BUG/MEDIUM: stats: fix stats page regression introduced by commit 20b0de5
2970 - BUG/MINOR: stats: last fix was still wrong
2971 - BUG/MINOR: stats: http-request rules still don't cope with stats
2972 - BUG/MINOR: http: http-request add-header emits a corrupted header
2973 - BUG/MEDIUM: stats: disable request analyser when processing POST or HEAD
2974 - BUG/MINOR: log: make log-format, unique-id-format and add-header more independant
2975 - BUILD: log: unused variable svid
2976 - CLEANUP: http: rename the misleading http_check_access_rule
2977 - MINOR: http: move redirect rule processing to its own function
2978 - REORG: config: move the http redirect rule parser to proto_http.c
2979 - MEDIUM: http: add support for "http-request redirect" rules
2980 - MEDIUM: http: add support for "http-request tarpit" rule
2981
Willy Tarreau69eda352012-12-24 16:48:14 +010029822012/12/24 : 1.5-dev16
2983 - BUG/MEDIUM: ssl: Prevent ssl error from affecting other connections.
2984 - BUG/MINOR: ssl: error is not reported if it occurs simultaneously with peer close detection.
2985 - MINOR: ssl: add fetch and acl "ssl_c_used" to check if current SSL session uses a client certificate.
2986 - MINOR: contrib: make the iprange tool grep for addresses
2987 - CLEANUP: polling: gcc doesn't always optimize constants away
2988 - OPTIM: poll: optimize fd management functions for low register count CPUs
2989 - CLEANUP: poll: remove a useless double-check on fdtab[fd].owner
2990 - OPTIM: epoll: use a temp variable for intermediary flag computations
2991 - OPTIM: epoll: current fd does not count as a new one
2992 - BUG/MINOR: poll: the I/O handler was called twice for polled I/Os
2993 - MINOR: http: make resp_ver and status ACLs check for the presence of a response
2994 - BUG/MEDIUM: stream-interface: fix possible stalls during transfers
2995 - BUG/MINOR: stream_interface: don't return when the fd is already set
2996 - BUG/MEDIUM: connection: always update connection flags prior to computing polling
2997 - CLEANUP: buffer: use buffer_empty() instead of buffer_len()==0
2998 - BUG/MAJOR: stream_interface: fix occasional data transfer freezes
2999 - BUG/MEDIUM: stream_interface: fix another case where the reader might not be woken up
3000 - BUG/MINOR: http: don't abort client connection on premature responses
3001 - BUILD: no need to clean up when making git-tar
3002 - MINOR: log: add a tag for amount of bytes uploaded from client to server
3003 - BUG/MEDIUM: log: fix possible segfault during config parsing
3004 - MEDIUM: log: change a few log tokens to make them easier to remember
3005 - BUG/MINOR: log: add_to_logformat_list() used the wrong constants
3006 - MEDIUM: log-format: make the format parser more robust and more extensible
3007 - MINOR: sample: support cast from bool to string
3008 - MINOR: samples: add a function to fetch and convert any sample to a string
3009 - MINOR: log: add lf_text_len
3010 - MEDIUM: log: add the ability to include samples in logs
3011 - REORG: stats: massive code reorg and cleanup
3012 - REORG: stats: move the HTTP header injection to proto_http
3013 - REORG: stats: functions are now HTTP/CLI agnostic
3014 - BUG/MINOR: log: fix regression introduced by commit 8a3f52
3015 - MINOR: chunks: centralize the trash chunk allocation
3016 - MEDIUM: stats: use hover boxes instead of title to report details
3017 - MEDIUM: stats: use multi-line tips to display detailed counters
3018 - MINOR: tools: simplify the use of the int to ascii macros
3019 - MINOR: stats: replace STAT_FMT_CSV with STAT_FMT_HTML
3020 - MINOR: http: prepare to support more http-request actions
3021 - MINOR: log: make parse_logformat_string() take a const char *
3022 - MEDIUM: http: add http-request 'add-header' and 'set-header' to build headers
3023
Willy Tarreau0cae4b32012-12-12 00:39:52 +010030242012/12/12 : 1.5-dev15
3025 - DOC: add a few precisions on compression
3026 - BUG/MEDIUM: ssl: Fix handshake failure on session resumption with client cert.
3027 - BUG/MINOR: ssl: One free session in cache remains unused.
3028 - BUG/MEDIUM: ssl: first outgoing connection would fail with {ca,crt}-ignore-err
3029 - MEDIUM: ssl: manage shared cache by blocks for huge sessions.
3030 - MINOR: acl: add fetch for server session rate
3031 - BUG/MINOR: compression: Content-Type is case insensitive
3032 - MINOR: compression: disable on multipart or status != 200
3033 - BUG/MINOR: http: don't report client aborts as server errors
3034 - MINOR: stats: compute the ratio of compressed response based on 2xx responses
3035 - MINOR: http: factor out the content-type checks
3036 - BUG/MAJOR: stats: correctly check for a possible divide error when showing compression ratios
3037 - BUILD: ssl: OpenSSL 0.9.6 has no renegociation
3038 - BUG/MINOR: http: disable compression when message has no body
3039 - MINOR: compression: make the stats a bit more robust
3040 - BUG/MEDIUM: comp: DEFAULT_MAXZLIBMEM was expressed in bytes and not megabytes
3041 - MINOR: connection: don't remove failed handshake flags
3042 - MEDIUM: connection: add an error code in connections
3043 - MEDIUM: connection: add minimal error reporting in logs for incomplete connections
3044 - MEDIUM: connection: add error reporting for the PROXY protocol header
3045 - MEDIUM: connection: add error reporting for the SSL
3046 - DOC: document the connection error format in logs
3047 - BUG/MINOR: http: don't log a 503 on client errors while waiting for requests
3048 - BUILD: stdbool is not portable
3049 - BUILD: ssl: NAME_MAX is not portable, use MAXPATHLEN instead
3050 - BUG/MAJOR: raw_sock: must check error code on hangup
3051 - BUG/MAJOR: polling: do not set speculative events on ERR nor HUP
3052 - BUG/MEDIUM: session: fix FD leak when transport layer logging is enabled
3053 - MINOR: stats: add a few more information on session dump
3054 - BUG/MINOR: tcp: set the ADDR_TO_SET flag on outgoing connections
3055 - CLEANUP: connection: remove unused server/proxy/task/si_applet declarations
3056 - BUG/MEDIUM: tcp: process could theorically crash on lack of source ports
3057 - MINOR: cfgparse: mention "interface" in the list of allowed "source" options
3058 - MEDIUM: connection: introduce "struct conn_src" for servers and proxies
3059 - CLEANUP: proto_tcp: use the same code to bind servers and backends
3060 - CLEANUP: backend: use the same tproxy address selection code for servers and backends
3061 - BUG/MEDIUM: stick-tables: conversions to strings were broken in dev13
3062 - MEDIUM: proto_tcp: add support for tracking L7 information
3063 - MEDIUM: counters: add sc1_trackers/sc2_trackers
3064 - MINOR: http: add the "base32" pattern fetch function
3065 - MINOR: http: add the "base32+src" fetch method.
3066 - CLEANUP: session: use an array for the stick counters
3067 - BUG/MINOR: proto_tcp: fix parsing of "table" in track-sc1/2
3068 - BUG/MINOR: proto_tcp: bidirectional fetches not supported anymore in track-sc1/2
3069 - BUG/MAJOR: connection: always recompute polling status upon I/O
3070 - BUG/MINOR: connection: remove a few synchronous calls to polling updates
3071 - MINOR: config: improve error checking on TCP stick-table tracking
3072 - DOC: add some clarifications to the readme
3073
Willy Tarreaufee48ce2012-11-26 03:11:05 +010030742012/11/26 : 1.5-dev14
3075 - DOC: fix minor typos
3076 - BUG/MEDIUM: compression: does not forward trailers
3077 - MINOR: buffer_dump with ASCII
3078 - BUG/MEDIUM: checks: mark the check as stopped after a connect error
3079 - BUG/MEDIUM: checks: ensure we completely disable polling upon success
3080 - BUG/MINOR: checks: don't mark the FD as closed before transport close
3081 - MEDIUM: checks: avoid accumulating TIME_WAITs during checks
3082 - MINOR: cli: report the msg state in full text in "show sess $PTR"
3083 - CLEANUP: checks: rename some server check flags
3084 - MAJOR: checks: rework completely bogus state machine
3085 - BUG/MINOR: checks: slightly clean the state machine up
3086 - MEDIUM: checks: avoid waking the application up for pure TCP checks
3087 - MEDIUM: checks: close the socket as soon as we have a response
3088 - BUG/MAJOR: checks: close FD on all timeouts
3089 - MINOR: checks: fix recv polling after connect()
3090 - MEDIUM: connection: provide a common conn_full_close() function
3091 - BUG/MEDIUM: checks: prevent TIME_WAITs from appearing also on timeouts
3092 - BUG/MAJOR: peers: the listener's maxaccept was not set and caused loops
3093 - MINOR: listeners: make the accept loop more robust when maxaccept==0
3094 - BUG/MEDIUM: acl: correctly resolve all args, not just the first one
3095 - BUG/MEDIUM: acl: make prue_acl_expr() correctly free ACL expressions upon exit
3096 - BUG/MINOR: stats: fix inversion of the report of a check in progress
3097 - MEDIUM: tcp: add explicit support for delayed ACK in connect()
3098 - BUG/MEDIUM: connection: always disable polling upon error
3099 - MINOR: connection: abort earlier when errors are detected
3100 - BUG/MEDIUM: checks: report handshake failures
3101 - BUG/MEDIUM: connection: local_send_proxy must wait for connection to establish
3102 - MINOR: tcp: add support for the "v6only" bind option
3103 - MINOR: stats: also report the computed compression savings in html stats
3104 - MINOR: stats: report the total number of compressed responses per front/back
3105 - MINOR: tcp: add support for the "v4v6" bind option
3106 - DOC: stats: document the comp_rsp stats column
3107 - BUILD: buffer: fix another isprint() warning on solaris
3108 - MINOR: cli: add support for the "show sess all" command
3109 - BUG/MAJOR: cli: show sess <id> may randomly corrupt the back-ref list
3110 - MINOR: cli: improve output format for show sess $ptr
3111
Willy Tarreauad15d122012-11-22 01:11:33 +010031122012/11/22 : 1.5-dev13
3113 - BUILD: fix build issue without USE_OPENSSL
3114 - BUILD: fix compilation error with DEBUG_FULL
3115 - DOC: ssl: remove prefer-server-ciphers documentation
3116 - DOC: ssl: surround keywords with quotes
3117 - DOC: fix minor typo on http-send-name-header
3118 - BUG/MEDIUM: acls using IPv6 subnets patterns incorrectly match IPs
3119 - BUG/MAJOR: fix a segfault on option http_proxy and url_ip acl
3120 - MEDIUM: http: accept IPv6 values with (s)hdr_ip acl
3121 - BUILD: report zlib support in haproxy -vv
3122 - DOC: compression: add some details and clean up the formatting
3123 - DOC: Change is_ssl acl to ssl_fc acl in example
3124 - DOC: make it clear what the HTTP request size is
3125 - MINOR: ssl: try to load Diffie-Hellman parameters from cert file
3126 - DOC: ssl: update 'crt' statement on 'bind' about Diffie-Hellman parameters loading
3127 - MINOR: ssl: add elliptic curve Diffie-Hellman support for ssl key generation
3128 - DOC: ssl: add 'ecdhe' statement on 'bind'
3129 - MEDIUM: ssl: add client certificate authentication support
3130 - DOC: ssl: add 'verify', 'cafile' and 'crlfile' statements on 'bind'
3131 - MINOR: ssl: add fetch and ACL 'client_crt' to test a client cert is present
3132 - DOC: ssl: add fetch and ACL 'client_cert'
3133 - MINOR: ssl: add ignore verify errors options
3134 - DOC: ssl: add 'ca-ignore-err' and 'crt-ignore-err' statements on 'bind'
3135 - MINOR: ssl: add fetch and ACL 'ssl_verify_result'
3136 - DOC: ssl: add fetch and ACL 'ssl_verify_result'
3137 - MINOR: ssl: add fetches and ACLs to return verify errors
3138 - DOC: ssl: add fetches and ACLs 'ssl_verify_crterr', 'ssl_verify_caerr', and 'ssl_verify_crterr_depth'
3139 - MINOR: ssl: disable shared memory and locks on session cache if nbproc == 1
3140 - MINOR: ssl: add build param USE_PRIVATE_CACHE to build cache without shared memory
3141 - MINOR: ssl : add statements 'notlsv11' and 'notlsv12' and rename 'notlsv1' to 'notlsv10'.
3142 - DOC: ssl : add statements 'notlsv11' and 'notlsv12' and rename 'notlsv1' to 'notlsv10'.
3143 - MEDIUM: config: authorize frontend and listen without bind.
3144 - MINOR: ssl: add statement 'no-tls-tickets' on bind to disable stateless session resumption
3145 - DOC: ssl: add 'no-tls-tickets' statement documentation.
3146 - BUG/MINOR: ssl: Fix CRL check was not enabled when crlfile was specified.
3147 - BUG/MINOR: build: Fix compilation issue on openssl 0.9.6 due to missing CRL feature.
3148 - BUG/MINOR: conf: Fix 'maxsslconn' statement error if built without OPENSSL.
3149 - BUG/MINOR: build: Fix failure with USE_OPENSSL=1 and USE_FUTEX=1 on archs i486 and i686.
3150 - MINOR: ssl: remove prefer-server-ciphers statement and set it as the default on ssl listeners.
3151 - BUG/MEDIUM: ssl: subsequent handshakes fail after server configuration changes
3152 - MINOR: ssl: add 'crt-base' and 'ca-base' global statements.
3153 - MEDIUM: conf: rename 'nosslv3' and 'notlsvXX' statements 'no-sslv3' and 'no-tlsvXX'.
3154 - MEDIUM: conf: rename 'cafile' and 'crlfile' statements 'ca-file' and 'crl-file'
3155 - MINOR: ssl: use bit fields to store ssl options instead of one int each
3156 - MINOR: ssl: add 'force-sslv3' and 'force-tlsvXX' statements on bind.
3157 - MINOR: ssl: add 'force-sslv3' and 'force-tlsvXX' statements on server
3158 - MINOR: ssl: add defines LISTEN_DEFAULT_CIPHERS and CONNECT_DEFAULT_CIPHERS.
3159 - BUG/MINOR: ssl: Fix issue on server statements 'no-tls*' and 'no-sslv3'
3160 - MINOR: ssl: move ssl context init for servers from cfgparse.c to ssl_sock.c
3161 - MEDIUM: ssl: reject ssl server keywords in default-server statement
3162 - MINOR: ssl: add statement 'no-tls-tickets' on server side.
3163 - MINOR: ssl: add statements 'verify', 'ca-file' and 'crl-file' on servers.
3164 - DOC: Fix rename of options cafile and crlfile to ca-file and crl-file.
3165 - MINOR: sample: manage binary to string type convertion in stick-table and samples.
3166 - MINOR: acl: add parse and match primitives to use binary type on ACLs
3167 - MINOR: sample: export 'sample_get_trash_chunk(void)'
3168 - MINOR: conf: rename all ssl modules fetches using prefix 'ssl_fc' and 'ssl_c'
3169 - MINOR: ssl: add pattern and ACLs fetches 'ssl_fc_protocol', 'ssl_fc_cipher', 'ssl_fc_use_keysize' and 'ssl_fc_alg_keysize'
3170 - MINOR: ssl: add pattern fetch 'ssl_fc_session_id'
3171 - MINOR: ssl: add pattern and ACLs fetches 'ssl_c_version' and 'ssl_f_version'
3172 - MINOR: ssl: add pattern and ACLs fetches 'ssl_c_s_dn', 'ssl_c_i_dn', 'ssl_f_s_dn' and 'ssl_c_i_dn'
3173 - MINOR: ssl: add pattern and ACLs 'ssl_c_sig_alg' and 'ssl_f_sig_alg'
3174 - MINOR: ssl: add pattern and ACLs fetches 'ssl_c_key_alg' and 'ssl_f_key_alg'
3175 - MINOR: ssl: add pattern and ACLs fetches 'ssl_c_notbefore', 'ssl_c_notafter', 'ssl_f_notbefore' and 'ssl_f_notafter'
3176 - MINOR: ssl: add 'crt' statement on server.
3177 - MINOR: ssl: checks the consistency of a private key with the corresponding certificate
3178 - BUG/MEDIUM: ssl: review polling on reneg.
3179 - BUG/MEDIUM: ssl: Fix some reneg cases not correctly handled.
3180 - BUG/MEDIUM: ssl: Fix sometimes reneg fails if requested by server.
3181 - MINOR: build: allow packagers to specify the ssl cache size
3182 - MINOR: conf: add warning if ssl is not enabled and a certificate is present on bind.
3183 - MINOR: ssl: Add tune.ssl.lifetime statement in global.
3184 - MINOR: compression: Enable compression for IE6 w/SP2, IE7 and IE8
3185 - BUG: http: revert broken optimisation from 82fe75c1a79dac933391501b9d293bce34513755
3186 - DOC: duplicate ssl_sni section
3187 - MEDIUM: HTTP compression (zlib library support)
3188 - CLEANUP: use struct comp_ctx instead of union
3189 - BUILD: remove dependency to zlib.h
3190 - MINOR: compression: memlevel and windowsize
3191 - MEDIUM: use pool for zlib
3192 - MINOR: compression: try init in cfgparse.c
3193 - MINOR: compression: init before deleting headers
3194 - MEDIUM: compression: limit RAM usage
3195 - MINOR: compression: tune.comp.maxlevel
3196 - MINOR: compression: maximum compression rate limit
3197 - MINOR: log-format: check number of arguments in cfgparse.c
3198 - BUG/MEDIUM: compression: no Content-Type header but type in configuration
3199 - BUG/MINOR: compression: deinit zlib only when required
3200 - MEDIUM: compression: don't compress when no data
3201 - MEDIUM: compression: use pool for comp_ctx
3202 - MINOR: compression: rate limit in 'show info'
3203 - MINOR: compression: report zlib memory usage
3204 - BUG/MINOR: compression: dynamic level increase
3205 - DOC: compression: unsupported cases.
3206 - MINOR: compression: CPU usage limit
3207 - MEDIUM: http: add "redirect scheme" to ease HTTP to HTTPS redirection
3208 - BUG/MAJOR: ssl: missing tests in ACL fetch functions
3209 - MINOR: config: add a function to indent error messages
3210 - REORG: split "protocols" files into protocol and listener
3211 - MEDIUM: config: replace ssl_conf by bind_conf
3212 - CLEANUP: listener: remove unused conf->file and conf->line
3213 - MEDIUM: listener: add a minimal framework to register "bind" keyword options
3214 - MEDIUM: config: move the "bind" TCP parameters to proto_tcp
3215 - MEDIUM: move bind SSL parsing to ssl_sock
3216 - MINOR: config: improve error reporting for "bind" lines
3217 - MEDIUM: config: move the common "bind" settings to listener.c
3218 - MEDIUM: config: move all unix-specific bind keywords to proto_uxst.c
3219 - MEDIUM: config: enumerate full list of registered "bind" keywords upon error
3220 - MINOR: listener: add a scope field in the bind keyword lists
3221 - MINOR: config: pass the file and line to config keyword parsers
3222 - MINOR: stats: fill the file and line numbers in the stats frontend
3223 - MINOR: config: set the bind_conf entry on listeners created from a "listen" line.
3224 - MAJOR: listeners: use dual-linked lists to chain listeners with frontends
3225 - REORG: listener: move unix perms from the listener to the bind_conf
3226 - BUG: backend: balance hdr was broken since 1.5-dev11
3227 - MINOR: standard: make memprintf() support a NULL destination
3228 - MINOR: config: make str2listener() use memprintf() to report errors.
3229 - MEDIUM: stats: remove the stats_sock struct from the global struct
3230 - MINOR: ssl: set the listeners' data layer to ssl during parsing
3231 - MEDIUM: stats: make use of the standard "bind" parsers to parse global socket
3232 - DOC: move bind options to their own section
3233 - DOC: stats: refer to "bind" section for "stats socket" settings
3234 - DOC: fix index to reference bind and server options
3235 - BUG: http: do not print garbage on invalid requests in debug mode
3236 - BUG/MINOR: config: check the proper pointer to report unknown protocol
3237 - CLEANUP: connection: offer conn_prepare() to set up a connection
3238 - CLEANUP: config: fix typo inteface => interface
3239 - BUG: stats: fix regression introduced by commit 4348fad1
3240 - MINOR: cli: allow to set frontend maxconn to zero
3241 - BUG/MAJOR: http: chunk parser was broken with buffer changes
3242 - MEDIUM: monitor: simplify handling of monitor-net and mode health
3243 - MINOR: connection: add a pointer to the connection owner
3244 - MEDIUM: connection: make use of the owner instead of container_of
3245 - BUG/MINOR: ssl: report the L4 connection as established when possible
3246 - BUG/MEDIUM: proxy: must not try to stop disabled proxies upon reload
3247 - BUG/MINOR: config: use a copy of the file name in proxy configurations
3248 - BUG/MEDIUM: listener: don't pause protocols that do not support it
3249 - MEDIUM: proxy: add the global frontend to the list of normal proxies
3250 - BUG/MINOR: epoll: correctly disable FD polling in fd_rem()
3251 - MINOR: signal: really ignore signals configured with no handler
3252 - MINOR: buffers: add a few functions to write chars, strings and blocks
3253 - MINOR: raw_sock: always report asynchronous connection errors
3254 - MEDIUM: raw_sock: improve connection error reporting
3255 - REORG: connection: rename the data layer the "transport layer"
3256 - REORG: connection: rename app_cb "data"
3257 - MINOR: connection: provide a generic data layer wakeup callback
3258 - MINOR: connection: split conn_prepare() in two functions
3259 - MINOR: connection: add an init callback to the data_cb struct
3260 - MEDIUM: session: use a specific data_cb for embryonic sessions
3261 - MEDIUM: connection: use a generic data-layer init() callback
3262 - MEDIUM: connection: reorganize connection flags
3263 - MEDIUM: connection: only call the data->wake callback on activity
3264 - MEDIUM: connection: make it possible for data->wake to return an error
3265 - MEDIUM: session: register a data->wake callback to process errors
3266 - MEDIUM: connection: don't call the data->init callback upon error
3267 - MEDIUM: connection: it's not the data layer's role to validate the connection
3268 - MEDIUM: connection: automatically disable polling on error
3269 - REORG: connection: move the PROXY protocol management to connection.c
3270 - MEDIUM: connection: add a new local send-proxy transport callback
3271 - MAJOR: checks: make use of the connection layer to send checks
3272 - REORG: server: move the check-specific parts into a check subsection
3273 - MEDIUM: checks: use real buffers to store requests and responses
3274 - MEDIUM: check: add the ctrl and transport layers in the server check structure
3275 - MAJOR: checks: completely use the connection transport layer
3276 - MEDIUM: checks: add the "check-ssl" server option
3277 - MEDIUM: checks: enable the PROXY protocol with health checks
3278 - CLEANUP: checks: remove minor warnings for assigned but not used variables
3279 - MEDIUM: tcp: enable TCP Fast Open on systems which support it
3280 - BUG: connection: fix regression from commit 9e272bf9
3281 - CLEANUP: cttproxy: remove a warning on undeclared close()
3282 - BUG/MAJOR: ensure that hdr_idx is always reserved when L7 fetches are used
3283 - MEDIUM: listener: add support for linux's accept4() syscall
3284 - MINOR: halog: sort output by cookie code
3285 - BUG/MINOR: halog: -ad/-ac report the correct number of output lines
3286 - BUG/MINOR: halog: fix help message for -ut/-uto
3287 - MINOR: halog: add a parameter to limit output line count
3288 - BUILD: accept4: move the socketcall declaration outside of accept4()
3289 - MINOR: server: add minimal infrastructure to parse keywords
3290 - MINOR: standard: make indent_msg() support empty messages
3291 - MEDIUM: server: check for registered keywords when parsing unknown keywords
3292 - MEDIUM: server: move parsing of keyword "id" to server.c
3293 - BUG/MEDIUM: config: check-send-proxy was ignored if SSL was not builtin
3294 - MEDIUM: ssl: move "server" keyword SSL options parsing to ssl_sock.c
3295 - MEDIUM: log: suffix the frontend's name with '~' when using SSL
3296 - MEDIUM: connection: always unset the transport layer upon close
3297 - BUG/MINOR: session: fix some leftover from debug code
3298 - BUG/MEDIUM: session: enable the conn_session_update() callback
3299 - MEDIUM: connection: add a flag to hold the transport layer
3300 - MEDIUM: log: add a new LW_XPRT flag to pin the transport layer
3301 - MINOR: log: make lf_text use a const char *
3302 - MEDIUM: log: report SSL ciphers and version in logs using logformat %sslc/%sslv
3303 - REORG: http: rename msg->buf to msg->chn since it's a channel
3304 - CLEANUP: http: use 'chn' to name channel variables, not 'buf'
3305 - CLEANUP: channel: use 'chn' instead of 'buf' as local variable names
3306 - CLEANUP: tcp: use 'chn' instead of 'buf' or 'b' for channel pointer names
3307 - CLEANUP: stream_interface: use 'chn' instead of 'b' to name channel pointers
3308 - CLEANUP: acl: use 'chn' instead of 'b' to name channel pointers
3309 - MAJOR: channel: replace the struct buffer with a pointer to a buffer
3310 - OPTIM: channel: reorganize struct members to improve cache efficiency
3311 - CLEANUP: session: remove term_trace which is not used anymore
3312 - OPTIM: session: reorder struct session fields
3313 - OPTIM: connection: pack the struct target
3314 - DOC: document relations between internal entities
3315 - MINOR: ssl: add 'ssl_npn' sample/acl to extract TLS/NPN information
3316 - BUILD: ssl: fix shctx build on older compilers
3317 - MEDIUM: ssl: add support for the "npn" bind keyword
3318 - BUG: ssl: fix ssl_sni ACLs to correctly process regular expressions
3319 - MINOR: chunk: provide string compare functions
3320 - MINOR: sample: accept fetch keywords without parenthesis
3321 - MEDIUM: sample: pass an empty list instead of a null for fetch args
3322 - MINOR: ssl: improve socket behaviour upon handshake abort.
3323 - BUG/MEDIUM: http: set DONTWAIT on data when switching to tunnel mode
3324 - MEDIUM: listener: provide a fallback for accept4() when not supported
3325 - BUG/MAJOR: connection: risk of crash on certain tricky close scenario
3326 - MEDIUM: cli: allow the stats socket to be bound to a specific set of processes
3327 - OPTIM: channel: inline channel_forward's fast path
3328 - OPTIM: http: inline http_parse_chunk_size() and http_skip_chunk_crlf()
3329 - OPTIM: tools: inline hex2i()
3330 - CLEANUP: http: rename HTTP_MSG_DATA_CRLF state
3331 - MINOR: compression: automatically disable compression for older browsers
3332 - MINOR: compression: optimize memLevel to improve byte rate
3333 - BUG/MINOR: http: compression should consider all Accept-Encoding header values
3334 - BUILD: fix coexistence of openssl and zlib
3335 - MINOR: ssl: add pattern and ACLs fetches 'ssl_c_serial' and 'ssl_f_serial'
3336 - BUG/MEDIUM: command-line option -D must have precedence over "debug"
3337 - MINOR: tools: add a clear_addr() function to unset an address
3338 - BUG/MEDIUM: tcp: transparent bind to the source only when address is set
3339 - CLEANUP: remove trashlen
3340 - MAJOR: session: detach the connections from the stream interfaces
3341 - DOC: update document describing relations between internal entities
3342 - BUILD: make it possible to specify ZLIB path
3343 - MINOR: compression: add an offload option to remove the Accept-Encoding header
3344 - BUG: compression: disable auto-close and enable MSG_MORE during transfer
3345 - CLEANUP: completely remove trashlen
3346 - MINOR: chunk: add a function to reset a chunk
3347 - CLEANUP: replace chunk_printf() with chunk_appendf()
3348 - MEDIUM: make the trash be a chunk instead of a char *
3349 - MEDIUM: remove remains of BUFSIZE in HTTP auth and sample conversions
3350 - MEDIUM: stick-table: allocate the table key of size buffer size
3351 - BUG/MINOR: stream_interface: don't loop over ->snd_buf()
3352 - BUG/MINOR: session: ensure that we don't retry connection if some data were sent
3353 - OPTIM: session: don't process the whole session when only timers need a refresh
3354 - BUG/MINOR: session: mark the handshake as complete earlier
3355 - MAJOR: connection: remove the CO_FL_CURR_*_POL flag
3356 - BUG/MAJOR: always clear the CO_FL_WAIT_* flags after updating polling flags
3357 - MAJOR: sepoll: make the poller totally event-driven
3358 - OPTIM: stream_interface: disable reading when CF_READ_DONTWAIT is set
3359 - BUILD: compression: remove a build warning
3360 - MEDIUM: fd: don't unset fdtab[].updated upon delete
3361 - REORG: fd: move the speculative I/O management from ev_sepoll
3362 - REORG: fd: move the fd state management from ev_sepoll
3363 - REORG: fd: centralize the processing of speculative events
3364 - BUG: raw_sock: also consider ENOTCONN in addition to EAGAIN
3365 - BUILD: stream_interface: remove si_fd() and its references
3366 - BUILD: compression: enable build in BSD and OSX Makefiles
3367 - MAJOR: ev_select: make the poller support speculative events
3368 - MAJOR: ev_poll: make the poller support speculative events
3369 - MAJOR: ev_kqueue: make the poller support speculative events
3370 - MAJOR: polling: replace epoll with sepoll and remove sepoll
3371 - MAJOR: polling: remove unused callbacks from the poller struct
3372 - MEDIUM: http: refrain from sending "Connection: close" when Upgrade is present
3373 - CLEANUP: channel: remove any reference of the hijackers
3374 - CLEANUP: stream_interface: remove the external task type target
3375 - MAJOR: connection: replace struct target with a pointer to an enum
3376 - BUG: connection: fix typo in previous commit
3377 - BUG: polling: don't skip polled events in the spec list
3378 - MINOR: splice: disable it when the system returns EBADF
3379 - MINOR: build: allow packagers to specify the default maxzlibmem
3380 - BUG: halog: fix broken output limitation
3381 - BUG: proxy: fix server name lookup in get_backend_server()
3382 - BUG: compression: do not always increment the round counter on allocation failure
3383 - BUG/MEDIUM: compression: release the zlib pools between keep-alive requests
3384 - MINOR: global: don't prevent nbproc from being redefined
3385 - MINOR: config: support process ranges for "bind-process"
3386 - MEDIUM: global: add support for CPU binding on Linux ("cpu-map")
3387 - MINOR: ssl: rename and document the tune.ssl.cachesize option
3388 - DOC: update the PROXY protocol spec to support v2
3389 - MINOR: standard: add a simple popcount function
3390 - MEDIUM: adjust the maxaccept per listener depending on the number of processes
3391 - BUG: compression: properly disable compression when content-type does not match
3392 - MINOR: cli: report connection status in "show sess xxx"
3393 - BUG/MAJOR: stream_interface: certain workloads could cause get stuck
3394 - BUILD: cli: fix build when SSL is enabled
3395 - MINOR: cli: report the fd state in "show sess xxx"
3396 - MINOR: cli: report an error message on missing argument to compression rate
3397 - MINOR: http: add some debugging functions to pretty-print msg state names
3398 - BUG/MAJOR: stream_interface: read0 not always handled since dev12
3399 - DOC: documentation on http header capture is wrong
3400 - MINOR: http: allow the cookie capture size to be changed
3401 - DOC: http header capture has not been limited in size for a long time
3402 - DOC: update readme with build methods for BSD
3403 - BUILD: silence a warning on Solaris about usage of isdigit()
3404 - MINOR: stats: report HTTP compression stats per frontend and per backend
3405 - MINOR: log: add '%Tl' to log-format
3406 - MINOR: samples: update the url_param fetch to match parameters in the path
3407
Willy Tarreau16216822012-09-10 09:46:55 +020034082012/09/10 : 1.5-dev12
3409 - CONTRIB: halog: sort URLs by avg bytes_read or total bytes_read
3410 - MEDIUM: ssl: add support for prefer-server-ciphers option
3411 - MINOR: IPv6 support for transparent proxy
3412 - MINOR: protocol: add SSL context to listeners if USE_OPENSSL is defined
3413 - MINOR: server: add SSL context to servers if USE_OPENSSL is defined
3414 - MEDIUM: connection: add a new handshake flag for SSL (CO_FL_SSL_WAIT_HS).
3415 - MEDIUM: ssl: add new files ssl_sock.[ch] to provide the SSL data layer
3416 - MEDIUM: config: add the 'ssl' keyword on 'bind' lines
3417 - MEDIUM: config: add support for the 'ssl' option on 'server' lines
3418 - MEDIUM: ssl: protect against client-initiated renegociation
3419 - BUILD: add optional support for SSL via the USE_OPENSSL flag
3420 - MEDIUM: ssl: add shared memory session cache implementation.
3421 - MEDIUM: ssl: replace OpenSSL's session cache with the shared cache
3422 - MINOR: ssl add global setting tune.sslcachesize to set SSL session cache size.
3423 - MEDIUM: ssl: add support for SNI and wildcard certificates
3424 - DOC: Typos cleanup
3425 - DOC: fix name for "option independant-streams"
3426 - DOC: specify the default value for maxconn in the context of a proxy
3427 - BUG/MINOR: to_log erased with unique-id-format
3428 - LICENSE: add licence exception for OpenSSL
3429 - BUG/MAJOR: cookie prefix doesn't support cookie-less servers
3430 - BUILD: add an AIX 5.2 (and later) target.
3431 - MEDIUM: fd/si: move peeraddr from struct fdinfo to struct connection
3432 - MINOR: halog: use the more recent dual-mode fgets2 implementation
3433 - BUG/MEDIUM: ebtree: ebmb_insert() must not call cmp_bits on full-length matches
3434 - CLEANUP: halog: make clean should also remove .o files
3435 - OPTIM: halog: make use of memchr() on platforms which provide a fast one
3436 - OPTIM: halog: improve cold-cache behaviour when loading a file
3437 - BUG/MINOR: ACL implicit arguments must be created with unresolved flag
3438 - MINOR: replace acl_fetch_{path,url}* with smp_fetch_*
3439 - MEDIUM: pattern: add the "base" sample fetch method
3440 - OPTIM: i386: make use of kernel-mode-linux when available
3441 - BUG/MINOR: tarpit: fix condition to return the HTTP 500 message
3442 - BUG/MINOR: polling: some events were not set in various pollers
3443 - MINOR: http: add the urlp_val ACL match
3444 - BUG: stktable: tcp_src_to_stktable_key() must return NULL on invalid families
3445 - MINOR: stats/cli: add plans to support more stick-table actions
3446 - MEDIUM: stats/cli: add support for "set table key" to enter values
3447 - REORG/MEDIUM: fd: remove FD_STCLOSE from struct fdtab
3448 - REORG/MEDIUM: fd: remove checks for FD_STERROR in ev_sepoll
3449 - REORG/MEDIUM: fd: get rid of FD_STLISTEN
3450 - REORG/MINOR: connection: move declaration to its own include file
3451 - REORG/MINOR: checks: put a struct connection into the server
3452 - MINOR: connection: add flags to the connection struct
3453 - MAJOR: get rid of fdtab[].state and use connection->flags instead
3454 - MINOR: fd: add a new I/O handler to fdtab
3455 - MEDIUM: polling: prepare to call the iocb() function when defined.
3456 - MEDIUM: checks: make use of fdtab->iocb instead of cb[]
3457 - MEDIUM: protocols: use the generic I/O callback for accept callbacks
3458 - MINOR: connection: add a handler for fd-based connections
3459 - MAJOR: connection: replace direct I/O callbacks with the connection callback
3460 - MINOR: fd: make fdtab->owner a connection and not a stream_interface anymore
3461 - MEDIUM: connection: remove the FD_POLL_* flags only once
3462 - MEDIUM: connection: extract the send_proxy callback from proto_tcp
3463 - MAJOR: tcp: remove the specific I/O callbacks for TCP connection probes
3464 - CLEANUP: remove the now unused fdtab direct I/O callbacks
3465 - MAJOR: remove the stream interface and task management code from sock_*
3466 - MEDIUM: stream_interface: pass connection instead of fd in sock_ops
3467 - MEDIUM: stream_interface: centralize the SI_FL_ERR management
3468 - MAJOR: connection: add a new CO_FL_CONNECTED flag
3469 - MINOR: rearrange tcp_connect_probe() and fix wrong return codes
3470 - MAJOR: connection: call data layer handshakes from the handler
3471 - MEDIUM: fd: remove the EV_FD_COND_* primitives
3472 - MINOR: sock_raw: move calls to si_data_close upper
3473 - REORG: connection: replace si_data_close() with conn_data_close()
3474 - MEDIUM: sock_raw: introduce a read0 callback that is different from shutr
3475 - MAJOR: stream_int: use a common stream_int_shut*() functions regardless of the data layer
3476 - MAJOR: fd: replace all EV_FD_* macros with new fd_*_* inline calls
3477 - MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required
3478 - MEDIUM: connection: add definitions for dual polling mechanisms
3479 - MEDIUM: connection: make use of the new polling functions
3480 - MAJOR: make use of conn_{data|sock}_{poll|stop|want}* in connection handlers
3481 - MEDIUM: checks: don't use FD_WAIT_* anymore
3482 - MINOR: fd: get rid of FD_WAIT_*
3483 - MEDIUM: stream_interface: offer a generic function for connection updates
3484 - MEDIUM: stream-interface: offer a generic chk_rcv function for connections
3485 - MEDIUM: stream-interface: add a snd_buf() callback to sock_ops
3486 - MEDIUM: stream-interface: provide a generic stream_int_chk_snd_conn() function
3487 - MEDIUM: stream-interface: provide a generic si_conn_send_cb callback
3488 - MEDIUM: stream-interface: provide a generic stream_sock_read0() function
3489 - REORG/MAJOR: use "struct channel" instead of "struct buffer"
3490 - REORG/MAJOR: extract "struct buffer" from "struct channel"
3491 - MINOR: connection: provide conn_{data|sock}_{read0|shutw} functions
3492 - REORG: sock_raw: rename the files raw_sock*
3493 - MAJOR: raw_sock: extract raw_sock_to_buf() from raw_sock_read()
3494 - MAJOR: raw_sock: temporarily disable splicing
3495 - MINOR: stream-interface: add an rcv_buf callback to sock_ops
3496 - REORG: stream-interface: move sock_raw_read() to si_conn_recv_cb()
3497 - MAJOR: connection: split the send call into connection and stream interface
3498 - MAJOR: stream-interface: restore splicing mechanism
3499 - MAJOR: stream-interface: make conn_notify_si() more robust
3500 - MEDIUM: proxy-proto: don't use buffer flags in conn_si_send_proxy()
3501 - MAJOR: stream-interface: don't commit polling changes in every callback
3502 - MAJOR: stream-interface: fix splice not to call chk_snd by itself
3503 - MEDIUM: stream-interface: don't remove WAIT_DATA when a handshake is in progress
3504 - CLEANUP: connection: split sock_ops into data_ops, app_cp and si_ops
3505 - REORG: buffers: split buffers into chunk,buffer,channel
3506 - MAJOR: channel: remove the BF_OUT_EMPTY flag
3507 - REORG: buffer: move buffer_flush, b_adv and b_rew to buffer.h
3508 - MINOR: channel: rename bi_full to channel_full as it checks the whole channel
3509 - MINOR: buffer: provide a new buffer_full() function
3510 - MAJOR: channel: stop relying on BF_FULL to take action
3511 - MAJOR: channel: remove the BF_FULL flag
3512 - REORG: channel: move buffer_{replace,insert_line}* to buffer.{c,h}
3513 - CLEANUP: channel: usr CF_/CHN_ prefixes instead of BF_/BUF_
3514 - CLEANUP: channel: use "channel" instead of "buffer" in function names
3515 - REORG: connection: move the target pointer from si to connection
3516 - MAJOR: connection: move the addr field from the stream_interface
3517 - MEDIUM: stream_interface: remove CAP_SPLTCP/CAP_SPLICE flags
3518 - MEDIUM: proto_tcp: remove any dependence on stream_interface
3519 - MINOR: tcp: replace tcp_src_to_stktable_key with addr_to_stktable_key
3520 - MEDIUM: connection: add an ->init function to data layer
3521 - MAJOR: session: introduce embryonic sessions
3522 - MAJOR: connection: make the PROXY decoder a handshake handler
3523 - CLEANUP: frontend: remove the old proxy protocol decoder
3524 - MAJOR: connection: rearrange the polling flags.
3525 - MEDIUM: connection: only call tcp_connect_probe when nothing was attempted yet
3526 - MEDIUM: connection: complete the polling cleanups
3527 - MEDIUM: connection: avoid calling handshakes when polling is required
3528 - MAJOR: stream_interface: continue to update data polling flags during handshakes
3529 - CLEANUP: fd: remove fdtab->flags
3530 - CLEANUP: fdtab: flatten the struct and merge the spec struct with the rest
3531 - CLEANUP: includes: fix includes for a number of users of fd.h
3532 - MINOR: ssl: disable TCP quick-ack by default on SSL listeners
3533 - MEDIUM: config: add a "ciphers" keyword to set SSL cipher suites
3534 - MEDIUM: config: add "nosslv3" and "notlsv1" on bind and server lines
3535 - BUG: ssl: mark the connection as waiting for an SSL connection during the handshake
3536 - BUILD: http: rename error_message http_error_message to fix conflicts on RHEL
3537 - BUILD: ssl: fix shctx build on RHEL with futex
3538 - BUILD: include sys/socket.h to fix build failure on FreeBSD
3539 - BUILD: fix build error without SSL (ssl_cert)
3540 - BUILD: ssl: use MAP_ANON instead of MAP_ANONYMOUS
3541 - BUG/MEDIUM: workaround an eglibc bug which truncates the pidfiles when nbproc > 1
3542 - MEDIUM: config: support per-listener backlog and maxconn
3543 - MINOR: session: do not send an HTTP/500 error on SSL sockets
3544 - MEDIUM: config: implement maxsslconn in the global section
3545 - BUG: tcp: close socket fd upon connect error
3546 - MEDIUM: connection: improve error handling around the data layer
3547 - MINOR: config: make the tasks "nice" value configurable on "bind" lines.
3548 - BUILD: shut a gcc warning introduced by commit 269ab31
3549 - MEDIUM: config: centralize handling of SSL config per bind line
3550 - BUILD: makefile: report USE_OPENSSL status in build options
3551 - BUILD: report openssl build settings in haproxy -vv
3552 - MEDIUM: ssl: add sample fetches for is_ssl, ssl_has_sni, ssl_sni_*
3553 - DOC: add a special acknowledgement for the stud project
3554 - DOC: add missing SSL options for servers and listeners
3555 - BUILD: automatically add -lcrypto for SSL
3556 - DOC: add some info about openssl build in the README
3557
Willy Tarreau02c7c142012-06-04 00:43:45 +020035582012/06/04 : 1.5-dev11
3559 - BUG/MEDIUM: option forwardfor if-none doesn't work with some configurations
3560 - BUG/MAJOR: trash must always be the size of a buffer
3561 - DOC: fix minor regex example issue and improve doc on stats
3562 - MINOR: stream_interface: add a pointer to the listener for TARG_TYPE_CLIENT
3563 - MEDIUM: protocol: add a pointer to struct sock_ops to the listener struct
3564 - MINOR: checks: add on-marked-up option
3565 - MINOR: balance uri: added 'whole' parameter to include query string in hash calculation
3566 - MEDIUM: stream_interface: remove the si->init
3567 - MINOR: buffers: add a rewind function
3568 - BUG/MAJOR: fix regression on content-based hashing and http-send-name-header
3569 - MAJOR: http: stop using msg->sol outside the parsers
3570 - CLEANUP: http: make it more obvious that msg->som is always null outside of chunks
3571 - MEDIUM: http: get rid of msg->som which is not used anymore
3572 - MEDIUM: http: msg->sov and msg->sol will never wrap
3573 - BUG/MAJOR: checks: don't call set_server_status_* when no LB algo is set
3574 - BUG/MINOR: stop connect timeout when connect succeeds
3575 - REORG: move the send-proxy code to tcp_connect_write()
3576 - REORG/MINOR: session: detect the TCP monitor checks at the protocol accept
3577 - MINOR: stream_interface: introduce a new "struct connection" type
3578 - REORG/MINOR: stream_interface: move si->fd to struct connection
3579 - REORG/MEDIUM: stream_interface: move applet->state and private to connection
3580 - MINOR: stream_interface: add a data channel close function
3581 - MEDIUM: stream_interface: call si_data_close() before releasing the si
3582 - MINOR: peers: use the socket layer operations from the peer instead of sock_raw
3583 - BUG/MINOR: checks: expire on timeout.check if smaller than timeout.connect
3584 - MINOR: add a new function call tracer for debugging purposes
3585 - BUG/MINOR: perform_http_redirect also needs to rewind the buffer
3586 - BUG/MAJOR: b_rew() must pass a signed offset to b_ptr()
3587 - BUG/MEDIUM: register peer sync handler in the proper order
3588 - BUG/MEDIUM: buffers: fix bi_putchr() to correctly advance the pointer
3589 - BUG/MINOR: fix option httplog validation with TCP frontends
3590 - BUG/MINOR: log: don't report logformat errors in backends
3591 - REORG/MINOR: use dedicated proxy flags for the cookie handling
3592 - BUG/MINOR: config: do not report twice the incompatibility between cookie and non-http
3593 - MINOR: http: add support for "httponly" and "secure" cookie attributes
3594 - BUG/MEDIUM: ensure that unresolved arguments are freed exactly once
3595 - BUG/MINOR: commit 196729ef used wrong condition resulting in freeing constants
3596 - MEDIUM: stats: add support for soft stop/soft start in the admin interface
3597 - MEDIUM: stats: add the ability to kill sessions from the admin interface
3598 - BUILD: add support for linux kernels >= 2.6.28
3599
Willy Tarreauffb89472012-05-14 07:26:56 +020036002012/05/14 : 1.5-dev10
3601 - BUG/MINOR: stats admin: "Unexpected result" was displayed unconditionally
3602 - BUG/MAJOR: acl: http_auth_group() must not accept any user from the userlist
3603 - CLEANUP: auth: make the code build again with DEBUG_AUTH
3604 - BUG/MEDIUM: config: don't crash at config load time on invalid userlist names
3605 - REORG: use the name sock_raw instead of stream_sock
3606 - MINOR: stream_interface: add a client target : TARG_TYPE_CLIENT
3607 - BUG/MEDIUM: stream_interface: restore get_src/get_dst
3608 - CLEANUP: sock_raw: remove last references to stream_sock
3609 - CLEANUP: stream_interface: stop exporting socket layer functions
3610 - MINOR: stream_interface: add an init callback to sock_ops
3611 - MEDIUM: stream_interface: derive the socket operations from the target
3612 - MAJOR: fd: remove the need for the socket layer to recheck the connection
3613 - MINOR: session: call the socket layer init function when a session establishes
3614 - MEDIUM: session: add support for tunnel timeouts
3615 - MINOR: standard: add a new debug macro : fddebug()
3616 - CLEANUP: fd: remove unused cb->b pointers in the struct fdtab
3617 - OPTIM: proto_http: don't enable quick-ack on empty buffers
3618 - OPTIM/MAJOR: ev_sepoll: process spec events after polled events
3619 - OPTIM/MEDIUM: stream_interface: add a new SI_FL_NOHALF flag
3620
Willy Tarreaua0564f32012-05-08 21:56:27 +020036212012/05/08 : 1.5-dev9
3622 - MINOR: Add release callback to si_applet
3623 - CLEANUP: Fix some minor typos
3624 - MINOR: Add TO/FROM_SET flags to struct stream_interface
3625 - CLEANUP: Fix some minor whitespace issues
3626 - MINOR: stats admin: allow unordered parameters in POST requests
3627 - CLEANUP: fix typo in findserver() log message
3628 - MINOR: stats admin: use the backend id instead of its name in the form
3629 - MINOR: stats admin: reduce memcmp()/strcmp() calls on status codes
3630 - DOC: cleanup indentation, alignment, columns and chapters
3631 - DOC: fix some keywords arguments documentation
3632 - MINOR: cli: display the 4 IP addresses and ports on "show sess XXX"
3633 - BUG/MAJOR: log: possible segfault with logformat
3634 - MEDIUM: log: split of log_format generation
3635 - MEDIUM: log: New format-log flags: %Fi %Fp %Si %Sp %Ts %rt %H %pid
3636 - MEDIUM: log: Unique ID
3637 - MINOR: log: log-format: usable without httplog and tcplog
3638 - BUG/MEDIUM: balance source did not properly hash IPv6 addresses
3639 - MINOR: contrib/iprange: add a network IP range to mask converter
3640 - MEDIUM: session: implement the "use-server" directive
3641 - MEDIUM: log: add a new cookie flag 'U' to report situations where cookie is not used
3642 - MEDIUM: http: make extract_cookie_value() iterate over cookie values
3643 - MEDIUM: http: add cookie and scookie ACLs
3644 - CLEANUP: lb_first: add reference to a paper describing the original idea
3645 - MEDIUM: stream_sock: add a get_src and get_dst callback and remove SN_FRT_ADDR_SET
3646 - BUG/MINOR: acl: req_ssl_sni would randomly fail if a session ID is present
3647 - BUILD: http: make extract_cookie_value() return an int not size_t
3648 - BUILD: http: stop gcc-4.1.2 from complaining about possibly uninitialized values
3649 - CLEANUP: http: message parser must ignore HTTP_MSG_ERROR
3650 - MINOR: standard: add a memprintf() function to build formatted error messages
3651 - CLEANUP: remove a few warning about unchecked return values in debug code
3652 - MEDIUM: move message-related flags from transaction to message
3653 - DOC: add a diagram to explain how circular buffers work
3654 - MAJOR: buffer rework: replace ->send_max with ->o
3655 - MAJOR: buffer: replace buf->l with buf->{o+i}
3656 - MINOR: buffers: provide simple pointer normalization functions
3657 - MINOR: buffers: remove unused function buffer_contig_data()
3658 - MAJOR: buffers: replace buf->w with buf->p - buf->o
3659 - MAJOR: buffers: replace buf->r with buf->p + buf->i
3660 - MAJOR: http: move buffer->lr to http_msg->next
3661 - MAJOR: http: change msg->{som,col,sov,eoh} to be relative to buffer origin
3662 - CLEANUP: http: remove unused http_msg->col
3663 - MAJOR: http: turn http_msg->eol to a buffer-relative offset
3664 - MEDIUM: http: add a pointer to the buffer in http_msg
3665 - MAJOR: http: make http_msg->sol relative to buffer's origin
3666 - MEDIUM: http: http_send_name_header: remove references to msg and buffer
3667 - MEDIUM: http: remove buffer arg in a few header manipulation functions
3668 - MEDIUM: http: remove buffer arg in http_capture_bad_message
3669 - MEDIUM: http: remove buffer arg in http_msg_analyzer
3670 - MEDIUM: http: remove buffer arg in http_upgrade_v09_to_v10
3671 - MEDIUM: http: remove buffer arg in http_buffer_heavy_realign
3672 - MEDIUM: http: remove buffer arg in chunk parsing functions
3673 - MINOR: http: remove useless wrapping checks in http_msg_analyzer
3674 - MEDIUM: buffers: fix unsafe use of buffer_ignore at some places
3675 - MEDIUM: buffers: add new pointer wrappers and get rid of almost all buffer_wrap_add calls
3676 - MEDIUM: buffers: implement b_adv() to advance a buffer's pointer
3677 - MEDIUM: buffers: rename a number of buffer management functions
3678 - MEDIUM: http: add a prefetch function for ACL pattern fetch
3679 - MEDIUM: http: make all ACL fetch function use acl_prefetch_http()
3680 - BUG/MINOR: http_auth: ACLs are volatile, not permanent
3681 - MEDIUM: http/acl: merge all request and response ACL fetches of headers and cookies
3682 - MEDIUM: http/acl: make acl_fetch_hdr_{ip,val} rely on acl_fetch_hdr()
3683 - MEDIUM: add a new typed argument list parsing framework
3684 - MAJOR: acl: make use of the new argument parsing framework
3685 - MAJOR: acl: store the ACL argument types in the ACL keyword declaration
3686 - MEDIUM: acl: acl_find_target() now resolves arguments based on their types
3687 - MAJOR: acl: make acl_find_targets also resolve proxy names at config time
3688 - MAJOR: acl: ensure that implicit table and proxies are valid
3689 - MEDIUM: acl: remove unused tests for missing args when args are mandatory
3690 - MEDIUM: pattern: replace type pattern_arg with type arg
3691 - MEDIUM: pattern: get rid of arg_i in all functions making use of arguments
3692 - MEDIUM: pattern: use the standard arg parser
3693 - MEDIUM: pattern: add an argument validation callback to pattern descriptors
3694 - MEDIUM: pattern: report the precise argument parsing error when known.
3695 - MEDIUM: acl: remove the ACL_TEST_F_NULL_MATCH flag
3696 - MINOR: pattern: add a new 'sample' type to store fetched data
3697 - MEDIUM: pattern: add new sample types to replace pattern types
3698 - MAJOR: acl: make use of the new sample struct and get rid of acl_test
3699 - MEDIUM: pattern/acl: get rid of temp_pattern in ACLs
3700 - MEDIUM: acl: get rid of the SET_RES flags
3701 - MEDIUM: get rid of SMP_F_READ_ONLY and SMP_F_MUST_FREE
3702 - MINOR: pattern: replace struct pattern with struct sample
3703 - MEDIUM: pattern: integrate pattern_data into sample and use sample everywhere
3704 - MEDIUM: pattern: retrieve the sample type in the sample, not in the keyword description
3705 - MEDIUM: acl/pattern: switch rdp_cookie functions stack up-down
3706 - MEDIUM: acl: replace acl_expr with args in acl fetch_* functions
3707 - MINOR: tcp: replace acl_fetch_rdp_cookie with smp_fetch_rdp_cookie
3708 - MEDIUM: acl/pattern: use the same direction scheme
3709 - MEDIUM: acl/pattern: start merging common sample fetch functions
3710 - MEDIUM: pattern: ensure that sample types always cast into other types.
3711 - MEDIUM: acl/pattern: factor out the src/dst address fetches
3712 - MEDIUM: acl: implement payload and payload_lv
3713 - CLEANUP: pattern: ensure that payload and payload_lv always stay in the buffer
3714 - MINOR: stick_table: centralize the handling of empty keys
3715 - MINOR: pattern: centralize handling of unstable data in pattern_process()
3716 - MEDIUM: pattern: use smp_fetch_rdp_cookie instead of the pattern specific version
3717 - MINOR: acl: set SMP_OPT_ITERATE on fetch functions
3718 - MINOR: acl: add a val_args field to keywords
3719 - MINOR: proto_tcp: validate arguments of payload and payload_lv ACLs
3720 - MEDIUM: http: merge acl and pattern header fetch functions
3721 - MEDIUM: http: merge ACL and pattern cookie fetches into a single one
3722 - MEDIUM: acl: report parsing errors to the caller
3723 - MINOR: arg: improve error reporting on invalid arguments
3724 - MINOR: acl: report errors encountered when loading patterns from files
3725 - MEDIUM: acl: extend the pattern parsers to report meaningful errors
3726 - REORG: use the name "sample" instead of "pattern" to designate extracted data
3727 - REORG: rename "pattern" files
3728 - MINOR: acl: add types to ACL patterns
3729 - MINOR: standard: add an IPv6 parsing function (str62net)
3730 - MEDIUM: acl: support IPv6 address matching
3731 - REORG: stream_interface: create a struct sock_ops to hold socket operations
3732 - REORG/MEDIUM: move protocol->{read,write} to sock_ops
3733 - REORG/MEDIUM: stream_interface: initialize socket ops from descriptors
3734 - REORG/MEDIUM: replace stream interface protocol functions by a proto pointer
3735 - REORG/MEDIUM: move the default accept function from sockstream to protocols.c
3736 - MEDIUM: proto_tcp: remove src6 and dst6 pattern fetch methods
3737 - BUG/MINOR: http: error snapshots are wrong if buffer wraps
3738 - BUG/MINOR: http: ensure that msg->err_pos is always relative to buf->p
3739 - MEDIUM: http: improve error capture reports
3740 - MINOR: acl: add the cook_val() match to match a cookie against an integer
3741 - BUG/MEDIUM: send_proxy: fix initialisation of send_proxy_ofs
3742 - MEDIUM: memory: add the ability to poison memory at run time
3743 - BUG/MEDIUM: log: ensure that unique_id is properly initialized
3744 - MINOR: cfgparse: use a common errmsg pointer for all parsers
3745 - MEDIUM: cfgparse: make backend_parse_balance() use memprintf to report errors
3746 - MEDIUM: cfgparse: use the new error reporting framework for remaining cfg_keywords
3747 - MINOR: http: replace http_message_realign() with buffer_slow_realign()
3748
Willy Tarreau9eeb57b2012-03-26 06:15:29 +020037492012/03/26 : 1.5-dev8
3750 - MINOR: patch for minor typo (ressources/resources)
3751 - MEDIUM: http: add support for sending the server's name in the outgoing request
3752 - DOC: mention that default checks are TCP connections
3753 - BUG/MINOR: fix options forwardfor if-none when an alternative header name is specified
3754 - CLEANUP: Make check_statuses, analyze_statuses and process_chk static
3755 - CLEANUP: Fix HCHK spelling errors
3756 - BUG/MINOR: fix typo in processing of http-send-name-header
3757 - MEDIUM: log: Use linked lists for loggers
3758 - BUILD: fix declaration inside a scope block
3759 - REORG: log: split send_log function
3760 - MINOR: config: Parse the string of the log-format config keyword
3761 - MINOR: add ultoa, ulltoa, ltoa, lltoa implementations
3762 - MINOR: Date and time fonctions that don't use snprintf
3763 - MEDIUM: log: make http_sess_log use log_format
3764 - DOC: log-format documentation
3765 - MEDIUM: log: use log_format for mode tcplog
3766 - MEDIUM: log-format: backend source address %Bi %Bp
3767 - BUG/MINOR: log-format: fix %o flag
3768 - BUG/MEDIUM: bad length in log_format and __send_log
3769 - MINOR: logformat %st is signed
3770 - BUILD/MINOR: fix the source URL in the spec file
3771 - DOC: acl is http_first_req, not http_req_first
3772 - BUG/MEDIUM: don't trim last spaces from headers consisting only of spaces
3773 - MINOR: acl: add new matches for header/path/url length
3774 - BUILD: halog: make halog build on solaris
3775 - BUG/MINOR: don't use a wrong port when connecting to a server with mapped ports
3776 - MINOR: remove the client/server side distinction in SI addresses
3777 - MINOR: halog: add support for matching queued requests
3778 - DOC: indicate that cookie "prefix" and "indirect" should not be mixed
3779 - OPTIM/MINOR: move struct sockaddr_storage to the tail of structs
3780 - OPTIM/MINOR: make it possible to change pipe size (tune.pipesize)
3781 - BUILD/MINOR: silent a build warning in src/pipe.c (fcntl)
3782 - OPTIM/MINOR: move the hdr_idx pools out of the proxy struct
3783 - MEDIUM: tune.http.maxhdr makes it possible to configure the maximum number of HTTP headers
3784 - BUG/MINOR: fix a segfault when parsing a config with undeclared peers
3785 - CLEANUP: rename possibly confusing struct field "tracked"
3786 - BUG/MEDIUM: checks: fix slowstart behaviour when server tracking is in use
3787 - MINOR: config: tolerate server "cookie" setting in non-HTTP mode
3788 - MEDIUM: buffers: add some new primitives and rework existing ones
3789 - BUG: buffers: don't return a negative value on buffer_total_space_res()
3790 - MINOR: buffers: make buffer_pointer() support negative pointers too
3791 - CLEANUP: kill buffer_replace() and use an inline instead
3792 - BUG: tcp: option nolinger does not work on backends
3793 - CLEANUP: ebtree: remove a few annoying signedness warnings
3794 - CLEANUP: ebtree: clarify licence and update to 6.0.6
3795 - CLEANUP: ebtree: remove 4-year old harmless typo in duplicates insertion code
3796 - CLEANUP: ebtree: remove another typo, a wrong initialization in insertion code
3797 - BUG: ebtree: ebst_lookup() could return the wrong entry
3798 - OPTIM: stream_sock: reduce the amount of in-flight spliced data
3799 - OPTIM: stream_sock: save a failed recv syscall when splice returns EAGAIN
3800 - MINOR: acl: add support for TLS server name matching using SNI
3801 - BUG: http: re-enable TCP quick-ack upon incomplete HTTP requests
3802 - BUG: proto_tcp: don't try to bind to a foreign address if sin_family is unknown
3803 - MINOR: pattern: export the global temporary pattern
3804 - CLEANUP: patterns: get rid of pattern_data_setstring()
3805 - MEDIUM: acl: use temp_pattern to store fetched information in the "method" match
3806 - MINOR: acl: include pattern.h to make pattern migration more transparent
3807 - MEDIUM: pattern: change the pattern data integer from unsigned to signed
3808 - MEDIUM: acl: use temp_pattern to store any integer-type information
3809 - MEDIUM: acl: use temp_pattern to store any address-type information
3810 - CLEANUP: acl: integer part of acl_test is not used anymore
3811 - MEDIUM: acl: use temp_pattern to store any string-type information
3812 - CLEANUP: acl: remove last data fields from the acl_test struct
3813 - MEDIUM: http: replace get_ip_from_hdr2() with http_get_hdr()
3814 - MEDIUM: patterns: the hdr() pattern is now of type string
3815 - DOC: add minimal documentation on how ACLs work internally
3816 - DOC: add a coding-style file
3817 - OPTIM: halog: keep a fast path for the lines-count only
3818 - CLEANUP: silence a warning when building on sparc
3819 - BUG: http: tighten the list of allowed characters in a URI
3820 - MEDIUM: http: block non-ASCII characters in URIs by default
3821 - DOC: add some documentation from RFC3986 about URI format
3822 - BUG/MINOR: cli: correctly remove the whole table on "clear table"
3823 - BUG/MEDIUM: correctly disable servers tracking another disabled servers.
3824 - BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend
3825 - MINOR: halog: add some help on the command line
3826 - BUILD: fix build error on FreeBSD
3827 - BUG: fix double free in peers config error path
3828 - MEDIUM: improve config check return codes
3829 - BUILD: make it possible to look for pcre in the default system paths
3830 - MINOR: config: emit a warning when 'default_backend' masks servers
3831 - MINOR: backend: rework the LC definition to support other connection-based algos
3832 - MEDIUM: backend: add the 'first' balancing algorithm
3833 - BUG: fix httplog trailing LF
3834 - MEDIUM: increase chunk-size limit to 2GB-1
3835 - BUG: queue: fix dequeueing sequence on HTTP keep-alive sessions
3836 - BUG: http: disable TCP delayed ACKs when forwarding content-length data
3837 - BUG: checks: fix server maintenance exit sequence
3838 - BUG/MINOR: stream_sock: don't remove BF_EXPECT_MORE and BF_SEND_DONTWAIT on partial writes
3839 - DOC: enumerate valid status codes for "observe layer7"
3840 - MINOR: buffer: switch a number of buffer args to const
3841 - CLEANUP: silence signedness warning in acl.c
3842 - BUG: stream_sock: si->release was not called upon shutw()
3843 - MINOR: log: use "%ts" to log term status only and "%tsc" to log with cookie
3844 - BUG/CRITICAL: log: fix risk of crash in development snapshot
3845 - BUG/MAJOR: possible crash when using capture headers on TCP frontends
3846 - MINOR: config: disable header captures in TCP mode and complain
3847
Willy Tarreau60612eb2011-09-10 23:43:11 +020038482011/09/10 : 1.5-dev7
3849 - [BUG] fix binary stick-tables
3850 - [MINOR] http: *_dom matching header functions now also split on ":"
3851 - [BUG] checks: fix support of Mysqld >= 5.5 for mysql-check
3852 - [MINOR] acl: add srv_conn acl to count connections on a specific backend server
3853 - [MINOR] check: add redis check support
3854 - [DOC] small fixes to clearly distinguish between keyword and variables
3855 - [MINOR] halog: add support for termination code matching (-tcn/-TCN)
3856 - [DOC] Minor spelling fixes and grammatical enhancements
3857 - [CLEANUP] dumpstats: make symbols static where possible
3858 - [MINOR] Break out dumping table
3859 - [MINOR] Break out processing of clear table
3860 - [MINOR] Allow listing of stick table by key
3861 - [MINOR] Break out all stick table socat command parsing
3862 - [MINOR] More flexible clearing of stick table
3863 - [MINOR] Allow showing and clearing by key of ipv6 stick tables
3864 - [MINOR] Allow showing and clearing by key of integer stick tables
3865 - [MINOR] Allow showing and clearing by key of string stick tables
3866 - [CLEANUP] Remove assigned but unused variables
3867 - [CLEANUP] peers.h: fix declarations
3868 - [CLEANUP] session.c: Make functions static where possible
3869 - [MINOR] Add active connection list to server
3870 - [MINOR] Allow shutdown of sessions when a server becomes unavailable
3871 - [MINOR] Add down termination condition
3872 - [MINOR] Make appsess{,ion}_refresh static
3873 - [MINOR] Add rdp_cookie pattern fetch function
3874 - [CLEANUP] Remove unnecessary casts
3875 - [MINOR] Add non-stick server option
3876 - [MINOR] Consistently use error in tcp_parse_tcp_req()
3877 - [MINOR] Consistently free expr on error in cfg_parse_listen()
3878 - [MINOR] Free rdp_cookie_name on denint()
3879 - [MINOR] Free tcp rules on denint()
3880 - [MINOR] Free stick table pool on denint()
3881 - [MINOR] Free stick rules on denint()
3882 - [MEDIUM] Fix stick-table replication on soft-restart
3883 - [MEDIUM] Correct ipmask() logic
3884 - [MINOR] Correct type in table dump examples
3885 - [MINOR] Fix build error in stream_int_register_handler()
3886 - [MINOR] Use DPRINTF in assign_server()
3887 - [BUG] checks: http-check expect could fail a check on multi-packet responses
3888 - [DOC] fix minor typo in the "dispatch" doc
3889 - [BUG] proto_tcp: fix address binding on remote source
3890 - [MINOR] http: don't report the "haproxy" word on the monitoring response
3891 - [REORG] http: move HTTP error codes back to proto_http.h
3892 - [MINOR] http: make the "HTTP 200" status code configurable.
3893 - [MINOR] http: partially revert the chunking optimization for now
3894 - [MINOR] stream_sock: always clear BF_EXPECT_MORE upon complete transfer
3895 - [CLEANUP] stream_sock: remove unneeded FL_TCP and factor out test
3896 - [MEDIUM] http: add support for "http-no-delay"
3897 - [OPTIM] http: optimize chunking again in non-interactive mode
3898 - [OPTIM] stream_sock: avoid fast-forwarding of partial data
3899 - [OPTIM] stream_sock: don't use splice on too small payloads
3900 - [MINOR] config: make it possible to specify a cookie even without a server
3901 - [BUG] stats: support url-encoded forms
3902 - [MINOR] config: automatically compute a default fullconn value
3903 - [CLEANUP] config: remove some left-over printf debugging code from previous patch
3904 - [DOC] add missing entry or stick store-response
3905 - [MEDIUM] http: add support for 'cookie' and 'set-cookie' patterns
3906 - [BUG] halog: correctly handle truncated last line
3907 - [MINOR] halog: make SKIP_CHAR stop on field delimiters
3908 - [MINOR] halog: add support for HTTP log matching (-H)
3909 - [MINOR] halog: gain back performance before SKIP_CHAR fix
3910 - [OPTIM] halog: cache some common fields positions
3911 - [OPTIM] halog: check once for correct line format and reuse the pointer
3912 - [OPTIM] halog: remove many 'if' by using a function pointer for the filters
3913 - [OPTIM] halog: remove support for tab delimiters in input data
3914 - [BUG] session: risk of crash on out of memory (1.5-dev regression)
3915 - [MINOR] session: try to emit a 500 response on memory allocation errors
3916 - [OPTIM] stream_sock: reduce the default number of accepted connections at once
3917 - [BUG] stream_sock: disable listener when system resources are exhausted
3918 - [MEDIUM] proxy: add a PAUSED state to listeners and move socket tricks out of proxy.c
3919 - [BUG] stream_sock: ensure orphan listeners don't accept too many connections
3920 - [MINOR] listeners: add listen_full() to mark a listener full
3921 - [MINOR] listeners: add support for queueing resource limited listeners
3922 - [MEDIUM] listeners: put listeners in queue upon resource shortage
3923 - [MEDIUM] listeners: queue proxy-bound listeners at the proxy's
3924 - [MEDIUM] listeners: don't stop proxies when global maxconn is reached
3925 - [MEDIUM] listeners: don't change listeners states anymore in maintain_proxies
3926 - [CLEANUP] proxy: rename a few proxy states (PR_STIDLE and PR_STRUN)
3927 - [MINOR] stats: report a "WAITING" state for sockets waiting for resource
3928 - [MINOR] proxy: make session rate-limit more accurate
3929 - [MINOR] sessions: only wake waiting listeners up if rate limit is OK
3930 - [BUG] proxy: peers must only be stopped once, not upon every call to maintain_proxies
3931 - [CLEANUP] proxy: merge maintain_proxies() operation inside a single loop
3932 - [MINOR] task: new function task_schedule() to schedule a wake up
3933 - [MAJOR] proxy: finally get rid of maintain_proxies()
3934 - [BUG] proxy: stats frontend and peers were missing many initializers
3935 - [MEDIUM] listeners: add a global listener management task
3936 - [MINOR] proxy: make findproxy() return proxies from numeric IDs too
3937 - [DOC] fix typos, "#" is a sharp, not a dash
3938 - [MEDIUM] stats: add support for changing frontend's maxconn at runtime
3939 - [MEDIUM] checks: group health checks methods by values and save option bits
3940 - [MINOR] session-counters: add the ability to clear the counters
3941 - [BUG] check: http-check expect + regex would crash in defaults section
3942 - [MEDIUM] http: make x-forwarded-for addition conditional
3943 - [REORG] build: move syscall redefinition to specific places
3944 - [CLEANUP] update the year in the copyright banner
3945 - [BUG] possible crash in 'show table' on stats socket
3946 - [BUG] checks: use the correct destination port for sending checks
3947 - [BUG] backend: risk of picking a wrong port when mapping is used with crossed families
3948 - [MINOR] make use of set_host_port() and get_host_port() to get rid of family mismatches
3949 - [DOC] fixed a few "sensible" -> "sensitive" errors
3950 - [MINOR] make use of addr_to_str() and get_host_port() to replace many inet_ntop()
3951 - [BUG] http: trailing white spaces must also be trimmed after headers
3952 - [MINOR] stats: display "<NONE>" instead of the frontend name when unknown
3953 - [MINOR] http: take a capture of too large requests and responses
3954 - [MINOR] http: take a capture of truncated responses
3955 - [MINOR] http: take a capture of bad content-lengths.
3956 - [DOC] add a few old and uncommitted docs
3957 - [CLEANUP] cfgparse: fix reported options for the "bind" keyword
3958 - [MINOR] halog: add -hs/-HS to filter by HTTP status code range
3959 - [MINOR] halog: support backslash-escaped quotes
3960 - [CLEANUP] remove dirty left-over of a debugging message
3961 - [MEDIUM] stats: disable complex socket reservation for stats socket
3962 - [CLEANUP] remove a useless test in manage_global_listener_queue()
3963 - [MEDIUM] stats: add the "set maxconn" setting to the command line interface
3964 - [MEDIUM] add support for global.maxconnrate to limit the per-process conn rate.
3965 - [MINOR] stats: report the current and max global connection rates
3966 - [MEDIUM] stats: add the ability to adjust the global maxconnrate
3967 - [BUG] peers: don't pre-allocate 65000 connections to each peer
3968 - [MEDIUM] don't limit peers nor stats socket to maxconn nor maxconnrate
3969 - [BUG] peers: the peer frontend must not emit any log
3970 - [CLEANUP] proxy: make pause_proxy() perform the required controls and emit the logs
3971 - [BUG] peers: don't keep a peers section which has a NULL frontend
3972 - [BUG] peers: ensure the peers are resumed if they were paused
3973 - [MEDIUM] stats: add the ability to enable/disable/shutdown a frontend at runtime
3974 - [MEDIUM] session: make session_shutdown() an independant function
3975 - [MEDIUM] stats: offer the possibility to kill a session from the CLI
3976 - [CLEANUP] stats: centralize tests for backend/server inputs on the CLI
3977 - [MEDIUM] stats: offer the possibility to kill sessions by server
3978 - [MINOR] halog: do not consider byte 0x8A as end of line
3979 - [MINOR] frontend: ensure debug message length is always initialized
3980 - [OPTIM] halog: make fgets parse more bytes by blocks
3981 - [OPTIM] halog: add assembly version of the field lookup code
3982 - [MEDIUM] poll: add a measurement of idle vs work time
3983 - [CLEANUP] startup: report only the basename in the usage message
3984 - [MINOR] startup: add an option to change to a new directory
3985 - [OPTIM] task: don't scan the run queue if we know it's empty
3986 - [BUILD] stats: stdint is not present on solaris
3987 - [DOC] update the README file to reflect new naming rules for patches
3988 - [MINOR] stats: report the number of requests intercepted by the frontend
3989 - [DOC] update ROADMAP file
3990
Willy Tarreau04df1122011-04-08 00:56:41 +020039912011/04/08 : 1.5-dev6
3992 - [BUG] stream_sock: use get_addr_len() instead of sizeof() on sockaddr_storage
3993 - [BUG] TCP source tracking was broken with IPv6 changes
3994 - [BUG] stick-tables did not work when converting IPv6 to IPv4
3995 - [CRITICAL] fix risk of crash when dealing with space in response cookies
3996
Willy Tarreaub06ed2c2011-03-29 01:10:33 +020039972011/03/29 : 1.5-dev5
3998 - [BUG] standard: is_addr return value for IPv4 was inverted
3999 - [MINOR] update comment about IPv6 support for server
4000 - [MEDIUM] use getaddrinfo to resolve names if gethostbyname fail
4001 - [DOC] update IPv6 support for bind
4002 - [DOC] document IPv6 support for server
4003 - [DOC] fix a minor typo
4004 - [MEDIUM] IPv6 support for syslog
4005 - [DOC] document IPv6 support for syslog
4006 - [MEDIUM] IPv6 support for stick-tables
4007 - [DOC] document IPv6 support for stick-tables
4008 - [DOC] update ROADMAP file
4009 - [BUG] session: src_conn_cur was returning src_conn_cnt instead
4010 - [MINOR] frontend: add a make_proxy_line function
4011 - [MEDIUM] stream_sock: add support for sending the proxy protocol header line
4012 - [MEDIUM] server: add support for the "send-proxy" option
4013 - [DOC] update the spec on the proxy protocol
4014 - [BUILD] proto_tcp: fix build issue with CTTPROXY
4015 - [DOC] update ROADMAP file
4016 - [MEDIUM] config: rework the IPv4/IPv6 address parser to support host-only addresses
4017 - [MINOR] cfgparse: better report wrong listening addresses and make use of str2sa_range
4018 - [BUILD] add the USE_GETADDRINFO build option
4019 - [TESTS] provide a test case for various address formats
4020 - [BUG] session: conn_retries was not always initialized
4021 - [BUG] log: retrieve the target from the session, not the SI
4022 - [BUG] http: fix possible incorrect forwarded wrapping chunk size (take 2)
4023 - [MINOR] tools: add two macros MID_RANGE and MAX_RANGE
4024 - [BUG] http: fix content-length handling on 32-bit platforms
4025 - [OPTIM] buffers: uninline buffer_forward()
4026 - [BUG] stream_sock: fix handling for server side PROXY protocol
4027 - [MINOR] acl: add support for table_cnt and table_avl matches
4028 - [DOC] update ROADMAP file
4029
Willy Tarreaue0052cc2011-03-13 22:15:02 +010040302011/03/13 : 1.5-dev4
4031 - [MINOR] cfgparse: Check whether the path given for the stats socket actually fits into the sockaddr_un structure to avoid truncation.
4032 - [MINOR] unix sockets : inherits the backlog size from the listener
4033 - [CLEANUP] unix sockets : move create_uxst_socket() in uxst_bind_listener()
4034 - [DOC] fix a minor typo
4035 - [DOC] fix ignore-persist documentation
4036 - [MINOR] add warnings on features not compatible with multi-process mode
4037 - [BUG] http: fix http-pretend-keepalive and httpclose/tunnel mode
4038 - [MINOR] stats: add support for several packets in stats admin
4039 - [BUG] stats: admin commands must check the proxy state
4040 - [BUG] stats: admin web interface must check the proxy state
4041 - [MINOR] http: add pattern extraction method to stick on query string parameter
4042 - [MEDIUM] add internal support for IPv6 server addresses
4043 - [MINOR] acl: add be_id/srv_id to match backend's and server's id
4044 - [MINOR] log: add support for passing the forwarded hostname
4045 - [MINOR] log: ability to override the syslog tag
4046 - [MINOR] checks: add PostgreSQL health check
4047 - [DOC] update ROADMAP file
4048 - [BUILD] pattern: use 'int' instead of 'int32_t'
4049 - [OPTIM] linux: add support for bypassing libc to force using vsyscalls
4050 - [BUG] debug: report the correct poller list in verbose mode
4051 - [BUG] capture: do not capture a cookie if there is no memory left
4052 - [BUG] appsession: fix possible double free in case of out of memory
4053 - [CRITICAL] cookies: mixing cookies in indirect mode and appsession can crash the process
4054 - [BUG] http: correctly update the header list when removing two consecutive headers
4055 - [BUILD] add the CPU=native and ARCH=32/64 build options
4056 - [BUILD] add -fno-strict-aliasing to fix warnings with gcc >= 4.4
4057 - [CLEANUP] hash: move the avalanche hash code globally available
4058 - [MEDIUM] hash: add support for an 'avalanche' hash-type
4059 - [DOC] update roadmap file
4060 - [BUG] http: do not re-enable the PROXY analyser on keep-alive
4061 - [OPTIM] http: don't send each chunk in a separate packet
4062 - [DOC] fix minor typos reported recently in the peers section
4063 - [DOC] fix another typo in the doc
4064 - [MINOR] stats: report HTTP message state and buffer flags in error dumps
4065 - [BUG] http chunking: don't report a parsing error on connection errors
4066 - [BUG] stream_interface: truncate buffers when sending error messages
4067 - [MINOR] http: support wrapping messages in error captures
4068 - [MINOR] http: capture incorrectly chunked message bodies
4069 - [MINOR] stats: add global event ID and count
4070 - [BUG] http: analyser optimizations broke pipelining
4071 - [CLEANUP] frontend: only apply TCP-specific settings to TCP/TCP6 sockets
4072 - [BUG] http: fix incorrect error reporting during data transfers
4073 - [CRITICAL] session: correctly leave turn-around and queue states on abort
4074 - [BUG] session: release slot before processing pending connections
4075 - [MINOR] tcp: add support for dynamic MSS setting
4076 - [BUG] stick-table: correctly terminate string keys during lookups
4077 - [BUG] acl: fix handling of empty lines in pattern files
4078 - [BUG] stick-table: use the private buffer when padding strings
4079 - [BUG] ebtree: fix ebmb_lookup() with len smaller than the tree's keys
4080 - [OPTIM] ebtree: ebmb_lookup: reduce stack usage by moving the return code out of the loop
4081 - [OPTIM] ebtree: inline ebst_lookup_len and ebis_lookup_len
4082 - [REVERT] undo the stick-table string key lookup fixes
4083 - [MINOR] http: improve url_param pattern extraction to ignore empty values
4084 - [BUILD] frontend: shut a warning with TCP_MAXSEG
4085 - [BUG] http: update the header list's tail when removing the last header
4086 - [DOC] fix minor typo in the proxy protocol doc
4087 - [DOC] fix typos (http-request instead of http-check)
4088 - [BUG] http: use correct ACL pointer when evaluating authentication
4089 - [BUG] cfgparse: correctly count one socket per port in ranges
4090 - [BUG] startup: set the rlimits before binding ports, not after.
4091 - [BUG] acl: srv_id must return no match when the server is NULL
4092 - [MINOR] acl: add ability to check for internal response-only parameters
4093 - [MINOR] acl: srv_id is only valid in responses
4094 - [MINOR] config: warn if response-only conditions are used in "redirect" rules
4095 - [BUG] acl: fd leak when reading patterns from file
4096 - [DOC] fix minor typo in "usesrc"
4097 - [BUG] http: fix possible incorrect forwarded wrapping chunk size
4098 - [BUG] http: fix computation of message body length after forwarding has started
4099 - [BUG] http: balance url_param did not work with first parameters on POST
4100 - [TESTS] update the url_param regression test to test check_post too
4101 - [DOC] update ROADMAP
4102 - [DOC] internal: reflect the fact that SI_ST_ASS is transient
4103 - [BUG] config: don't crash on empty pattern files.
4104 - [MINOR] stream_interface: make use of an applet descriptor for IO handlers
4105 - [REORG] stream_interface: move the st0, st1 and private members to the applet
4106 - [REORG] stream_interface: split the struct members in 3 parts
4107 - [REORG] session: move client and server address to the stream interface
4108 - [REORG] tcp: make tcpv4_connect_server() take the target address from the SI
4109 - [MEDIUM] stream_interface: store the target pointer and type
4110 - [CLEANUP] stream_interface: remove the applet.handler pointer
4111 - [MEDIUM] log: take the logged server name from the stream interface
4112 - [CLEANUP] session: remove data_source from struct session
4113 - [CLEANUP] stats: make all dump functions only rely on the stream interface
4114 - [REORG] session: move the data_ctx struct to the stream interface's applet
4115 - [MINOR] proxy: add PR_O2_DISPATCH to detect dispatch mode
4116 - [MINOR] cfgparse: only keep one of dispatch, transparent, http_proxy
4117 - [MINOR] session: add a pointer to the new target into the session
4118 - [MEDIUM] session: remove s->prev_srv which is not needed anymore
4119 - [CLEANUP] stream_interface: use inline functions to manipulate targets
4120 - [MAJOR] session: remove the ->srv pointer from struct session
4121 - [MEDIUM] stats: split frontend and backend stats
4122 - [MEDIUM] http: always evaluate http-request rules before stats http-request
4123 - [REORG] http: move the http-request rules to proto_http
4124 - [BUG] http: stats were not incremented on http-request deny
4125 - [MINOR] checks: report it if checks fail due to socket creation error
4126
Willy Tarreau442e8342010-11-11 23:29:35 +010041272010/11/11 : 1.5-dev3
4128 - [DOC] fix http-request documentation
4129 - [MEDIUM] enable/disable servers from the stats web interface
4130 - [MEDIUM] stats: add an admin level
4131 - [DOC] stats: document the "stats admin" statement
4132 - [MINOR] startup: print the proxy socket which caused an error
4133 - [CLEANUP] Remove unneeded chars allocation
4134 - [MINOR] config: detect options not supported due to compilation options
4135 - [MINOR] Add pattern's fetchs payload and payload_lv
4136 - [MINOR] frontend: improve accept-proxy header parsing
4137 - [MINOR] frontend: add tcpv6 support on accept-proxy bind
4138 - [MEDIUM] Enhance message errors management on binds
4139 - [MINOR] Manage unix socket source field on logs
4140 - [MINOR] Manage unix socket source field on session dump on sock stats
4141 - [MINOR] Support of unix listener sockets for debug and log event messages on frontend.c
4142 - [MINOR] Add some tests on sockets family for port remapping and mode transparent.
4143 - [MINOR] Manage socket type unix for some logs
4144 - [MINOR] Enhance controls of socket's family on acls and pattern fetch
4145 - [MINOR] Support listener's sockets unix on http logs.
4146 - [MEDIUM] Add supports of bind on unix sockets.
4147 - [BUG] stick table purge failure if size less than 255
4148 - [BUG] stick table entries expire on counters updates/read or show table, even if there is no "expire" parameter
4149 - [MEDIUM] Implement tcp inspect response rules
4150 - [DOC] tcp-response content and inspect
4151 - [MINOR] new acls fetch req_ssl_hello_type and rep_ssl_hello_type
4152 - [DOC] acls rep_ssl_hello and req_ssl_hello
4153 - [MEDIUM] Create new protected pattern types CONSTSTRING and CONSTDATA to force memcpy if data from protected areas need to be manipulated.
4154 - [DOC] new type binary in stick-table
4155 - [DOC] stick store-response and new patterns payload and payload_lv
4156 - [MINOR] Manage all types (ip, integer, string, binary) on cli "show table" command
4157 - [MEDIUM] Create updates tree on stick table to manage sync.
4158 - [MAJOR] Add new files src/peer.c, include/proto/peers.h and include/types/peers.h for sync stick table management
4159 - [MEDIUM] Manage peers section parsing and stick table registration on peers.
4160 - [MEDIUM] Manage soft stop on peers proxy
4161 - [DOC] add documentation for peers section
4162 - [MINOR] checks: add support for LDAPv3 health checks
4163 - [MINOR] add better support to "mysql-check"
4164 - [BUG] Restore info about available active/backup servers
4165 - [CONTRIB] Update haproxy.pl
4166 - [CONTRIB] Update Cacti Tempates
4167 - [CONTRIB] add templates for Cacti.
4168 - [BUG] http: don't consider commas as a header delimitor within quotes
4169 - [MINOR] support a global jobs counter
4170 - [DOC] add a summary about cookie incompatibilities between specs and browsers
4171 - [DOC] fix description of cookie "insert" and "indirect" modes
4172 - [MEDIUM] http: fix space handling in the request cookie parser
4173 - [MEDIUM] http: fix space handling in the response cookie parser
4174 - [DOC] fix typo in the queue() definition (backend, not frontend)
4175 - [BUG] deinit: unbind listeners before freeing them
4176 - [BUG] stream_interface: only call si->release when both dirs are closed
4177 - [MEDIUM] buffers: rework the functions to exchange between SI and buffers
4178 - [DOC] fix typo in the avg_queue() and be_conn() definition (backend, not frontend)
4179 - [MINOR] halog: add '-tc' to sort by termination codes
4180 - [MINOR] halog: skip non-traffic logs for -st and -tc
4181 - [BUG] stream_sock: cleanly disable the listener in case of resource shortage
4182 - [BUILD] stream_sock: previous fix lacked the #include, causing a warning.
4183 - [DOC] bind option is "defer-accept", not "defer_accept"
4184 - [DOC] missing index entry for http-check send-state
4185 - [DOC] tcp-request inspect-delay is for backends too
4186 - [BUG] ebtree: string_equal_bits() could return garbage on identical strings
4187 - [BUG] stream_sock: try to flush any extra pending request data after a POST
4188 - [BUILD] proto_http: eliminate some build warnings with gcc-2.95
4189 - [MEDIUM] make it possible to combine http-pretend-keepalived with httpclose
4190 - [MEDIUM] tcp-request : don't wait for inspect-delay to expire when the buffer is full
4191 - [MEDIUM] checks: add support for HTTP contents lookup
4192 - [TESTS] add test-check-expect to test various http-check methods
4193 - [MINOR] global: add "tune.chksize" to change the default check buffer size
4194 - [MINOR] cookie: add options "maxidle" and "maxlife"
4195 - [MEDIUM] cookie: support client cookies with some contents appended to their value
4196 - [MINOR] http: make some room in the transaction flags to extend cookies
4197 - [MINOR] cookie: add the expired (E) and old (O) flags for request cookies
4198 - [MEDIUM] cookie: reassign set-cookie status flags to store more states
4199 - [MINOR] add encode/decode function for 30-bit integers from/to base64
4200 - [MEDIUM] cookie: check for maxidle and maxlife for incoming dated cookies
4201 - [MEDIUM] cookie: set the date in the cookie if needed
4202 - [DOC] document the cookie maxidle and maxlife parameters
4203 - [BUG] checks: don't log backend down for all zero-weight servers
4204 - [MEDIUM] checks: set server state to one state from failure when leaving maintenance
4205 - [BUG] config: report correct keywords for "observe"
4206 - [MINOR] checks: ensure that we can inherit binary checks from the defaults section
4207 - [MINOR] acl: add the http_req_first match
4208 - [DOC] fix typos about bind-process syntax
4209 - [BUG] cookie: correctly unset default cookie parameters
4210 - [MINOR] cookie: add support for the "preserve" option
4211 - [BUG] ebtree: fix duplicate strings insertion
4212 - [CONTRIB] halog: report per-url counts, errors and times
4213 - [CONTRIB] halog: minor speed improvement in timer parser
4214 - [MINOR] buffers: add a new request analyser flag for PROXY mode
4215 - [MINOR] listener: add the "accept-proxy" option to the "bind" keyword
4216 - [MINOR] standard: add read_uint() to parse a delimited unsigned integer
4217 - [MINOR] standard: change arg type from const char* to char*
4218 - [MINOR] frontend: add a new analyser to parse a proxied connection
4219 - [MEDIUM] session: call the frontend_decode_proxy analyser on proxied connections
4220 - [DOC] add the proxy protocol's specifications
4221 - [DOC] document the 'accept-proxy' bind option
4222 - [MINOR] cfgparse: report support of <path> for the 'bind' statements
4223 - [DOC] add references to unix socket handling
4224 - [MINOR] move MAXPATHLEN definition to compat.h
4225 - [MEDIUM] unix sockets: cleanup the error reporting path
4226 - [BUG] session: don't stop forwarding of data upon last packet
4227 - [CLEANUP] accept: replace some inappropriate Alert() calls with send_log()
4228 - [BUILD] peers: shut a printf format warning (key_size is a size_t)
4229 - [BUG] accept: don't close twice upon error
4230 - [OPTIM] session: don't recheck analysers when buffer flags have not changed
4231 - [OPTIM] stream_sock: don't clear FDs that are already cleared
4232 - [BUG] proto_tcp: potential bug on pattern fetch dst and dport
4233
Willy Tarreau37242fa2010-08-28 19:21:00 +020042342010/08/28 : 1.5-dev2
4235 - [MINOR] startup: release unused structs after forking
4236 - [MINOR] startup: don't wait for nothing when no old pid remains
4237 - [CLEANUP] reference product branch 1.5
4238 - [MEDIUM] signals: add support for registering functions and tasks
4239 - [MEDIUM] signals: support redistribution of signal zero when stopping
4240 - [BUG] http: don't set auto_close if more data are expected
4241
Willy Tarreaufc815fd2010-08-25 10:56:53 +020042422010/08/25 : 1.5-dev1
4243 - [BUG] stats: session rate limit gets garbaged in the stats
4244 - [DOC] mention 'option http-server-close' effect in Tq section
4245 - [DOC] summarize and highlight persistent connections behaviour
4246 - [DOC] add configuration samples
4247 - [BUG] http: dispatch and http_proxy modes were broken for a long time
4248 - [BUG] http: the transaction must be initialized even in TCP mode
4249 - [BUG] tcp: dropped connections must be counted as "denied" not "failed"
4250 - [BUG] consistent hash: balance on all servers, not only 2 !
4251 - [CONTRIB] halog: report per-server status codes, errors and response times
4252 - [BUG] http: the transaction must be initialized even in TCP mode (part 2)
4253 - [BUG] client: always ensure to zero rep->analysers
4254 - [BUG] session: clear BF_READ_ATTACHED before next I/O
4255 - [BUG] http: automatically close response if req is aborted
4256 - [BUG] proxy: connection rate limiting was eating lots of CPU
4257 - [BUG] http: report correct flags in case of client aborts during body
4258 - [TESTS] refine non-regression tests and add 4 new tests
4259 - [BUG] debug: wrong pointer was used to report a status line
4260 - [BUG] debug: correctly report truncated messages
4261 - [DOC] document the "dispatch" keyword
4262 - [BUG] stick_table: fix possible memory leak in case of connection error
4263 - [CLEANUP] acl: use 'L6' instead of 'L4' in ACL flags relying on contents
4264 - [MINOR] accept: count the incoming connection earlier
4265 - [CLEANUP] tcp: move some non tcp-specific layer6 processing out of proto_tcp
4266 - [CLEANUP] client: move some ACLs away to their respective locations
4267 - [CLEANUP] rename client -> frontend
4268 - [MEDIUM] separate protocol-level accept() from the frontend's
4269 - [MINOR] proxy: add a list to hold future layer 4 rules
4270 - [MEDIUM] config: parse tcp layer4 rules (tcp-request accept/reject)
4271 - [MEDIUM] tcp: check for pure layer4 rules immediately after accept()
4272 - [OPTIM] frontend: tell the compiler that errors are unlikely to occur
4273 - [MEDIUM] frontend: check for LI_O_TCP_RULES in the listener
4274 - [MINOR] frontend: only check for monitor-net rules if LI_O_CHK_MONNET is set
4275 - [CLEANUP] buffer->cto is not used anymore
4276 - [MEDIUM] session: finish session establishment sequence in with I/O handlers
4277 - [MEDIUM] session: initialize server-side timeouts after connect()
4278 - [MEDIUM] backend: initialize the server stream_interface upon connect()
4279 - [MAJOR] frontend: don't initialize the server-side stream_int anymore
4280 - [MEDIUM] session: move the conn_retries attribute to the stream interface
4281 - [MEDIUM] session: don't assign conn_retries upon accept() anymore
4282 - [MINOR] frontend: rely on the frontend and not the backend for INDEPSTR
4283 - [MAJOR] frontend: reorder the session initialization upon accept
4284 - [MINOR] proxy: add an accept() callback for the application layer
4285 - [MAJOR] frontend: split accept() into frontend_accept() and session_accept()
4286 - [MEDIUM] stats: rely on the standard session_accept() function
4287 - [MINOR] buffer: refine the flags that may wake an analyser up.
4288 - [MINOR] stream_sock: don't dereference a non-existing frontend
4289 - [MINOR] session: differenciate between accepted connections and received connections
4290 - [MEDIUM] frontend: count the incoming connection earlier
4291 - [MINOR] frontend: count denied TCP requests separately
4292 - [CLEANUP] stick_table: add/clarify some comments
4293 - [BUILD] memory: add a few missing parenthesis to the pool management macros
4294 - [MINOR] stick_table: add support for variable-sized data
4295 - [CLEANUP] stick_table: rename some stksess struct members to avoid confusion
4296 - [CLEANUP] stick_table: move pattern to key functions to stick_table.c
4297 - [MEDIUM] stick_table: add room for extra data types
4298 - [MINOR] stick_table: add support for "conn_cum" data type.
4299 - [MEDIUM] stick_table: don't overwrite data when storing an entry
4300 - [MINOR] config: initialize stick tables after all the parsing
4301 - [MINOR] stick_table: provide functions to return stksess data from a type
4302 - [MEDIUM] stick_table: move the server ID to a generic data type
4303 - [MINOR] stick_table: enable it for frontends too
4304 - [MINOR] stick_table: export the stick_table_key
4305 - [MINOR] tcp: add per-source connection rate limiting
4306 - [MEDIUM] stick_table: separate storage and update of session entries
4307 - [MEDIUM] stick-tables: add a reference counter to each entry
4308 - [MINOR] session: add a pointer to the tracked counters for the source
4309 - [CLEANUP] proto_tcp: make the config parser a little bit more flexible
4310 - [BUG] config: report the correct proxy type in tcp-request errors
4311 - [MINOR] config: provide a function to quote args in a more friendly way
4312 - [BUG] stick_table: the fix for the memory leak caused a regression
4313 - [MEDIUM] backend: support servers on 0.0.0.0
4314 - [BUG] stick-table: correctly refresh expiration timers
4315 - [MEDIUM] stream-interface: add a ->release callback
4316 - [MINOR] proxy: add a "parent" member to the structure
4317 - [MEDIUM] session: make it possible to call an I/O handler on both SI
4318 - [MINOR] tools: add a fast div64_32 function
4319 - [MINOR] freq_ctr: add new types and functions for periods different from 1s
4320 - [MINOR] errors: provide new status codes for config parsing functions
4321 - [BUG] http: denied requests must not be counted as denied resps in listeners
4322 - [MINOR] tools: add a get_std_op() function to parse operators
4323 - [MEDIUM] acl: make use of get_std_op() to parse intger ranges
4324 - [MAJOR] stream_sock: better wakeup conditions on read()
4325 - [BUG] session: analysers must be checked when SI state changes
4326 - [MINOR] http: reset analysers to listener's, not frontend's
4327 - [MEDIUM] session: support "tcp-request content" rules in backends
4328 - [BUILD] always match official tags when doing git-tar
4329 - [MAJOR] stream_interface: fix the wakeup conditions for embedded iohandlers
4330 - [MEDIUM] buffer: make buffer_feed* support writing non-contiguous chunks
4331 - [MINOR] tcp: src_count acl does not have a permanent result
4332 - [MAJOR] session: add track-counters to track counters related to the session
4333 - [MINOR] stick-table: provide a table lookup function
4334 - [MINOR] stick-table: use suffix "_cnt" for cumulated counts
4335 - [MEDIUM] session: move counter ACL fetches from proto_tcp
4336 - [MEDIUM] session: add concurrent connections counter
4337 - [MEDIUM] session: add data in and out volume counters
4338 - [MINOR] session: add the trk_conn_cnt ACL keyword to track connection counts
4339 - [MEDIUM] session-counters: automatically update tracked connection count
4340 - [MINOR] session: add the trk_conn_cur ACL keyword to track concurrent connection
4341 - [MINOR] session: add trk_kbytes_* ACL keywords to track data size
4342 - [MEDIUM] session: add a counter on the cumulated number of sessions
4343 - [MINOR] config: support a comma-separated list of store data types in stick-table
4344 - [MEDIUM] stick-tables: add support for arguments to data_types
4345 - [MEDIUM] stick-tables: add stored data argument type checking
4346 - [MEDIUM] session counters: add conn_rate and sess_rate counters
4347 - [MEDIUM] session counters: add bytes_in_rate and bytes_out_rate counters
4348 - [MINOR] stktable: add a stktable_update_key() function
4349 - [MINOR] session-counters: add a general purpose counter (gpc0)
4350 - [MEDIUM] session-counters: add HTTP req/err tracking
4351 - [MEDIUM] stats: add "show table [<name>]" to dump a stick-table
4352 - [MEDIUM] stats: add "clear table <name> key <value>" to clear table entries
4353 - [CLEANUP] stick-table: declare stktable_data_types as extern
4354 - [MEDIUM] stick-table: make use of generic types for stored data
4355 - [MINOR] stats: correctly report errors on "show table" and "clear table"
4356 - [MEDIUM] stats: add the ability to dump table entries matching criteria
4357 - [DOC] configuration: document all the new tracked counters
4358 - [DOC] stats: document "show table" and "clear table"
4359 - [MAJOR] session-counters: split FE and BE track counters
4360 - [MEDIUM] tcp: accept the "track-counters" in "tcp-request content" rules
4361 - [MEDIUM] session counters: automatically remove expired entries.
4362 - [MEDIUM] config: replace 'tcp-request <action>' with "tcp-request connection"
4363 - [MEDIUM] session-counters: make it possible to count connections from frontend
4364 - [MINOR] session-counters: use "track-sc{1,2}" instead of "track-{fe,be}-counters"
4365 - [MEDIUM] session-counters: correctly unbind the counters tracked by the backend
4366 - [CLEANUP] stats: use stksess_kill() to remove table entries
4367 - [DOC] update the references to session counters and to tcp-request connection
4368 - [DOC] cleanup: split a few long lines
4369 - [MEDIUM] http: forward client's close when abortonclose is set
4370 - [BUG] queue: don't dequeue proxy-global requests on disabled servers
4371 - [BUG] stats: global stats timeout may be specified before stats socket.
4372 - [BUG] conf: add tcp-request content rules to the correct list
4373
Willy Tarreau21475e32010-05-23 08:46:08 +020043742010/05/23 : 1.5-dev0
4375 - exact copy of 1.4.6
4376
Willy Tarreau5fdd77d2010-05-16 22:34:28 +020043772010/05/16 : 1.4.6
4378 - [BUILD] ebtree: update to v6.0.1 to remove references to dprintf()
4379 - [CLEANUP] acl: make use of eb_is_empty() instead of open coding the tree's emptiness test
4380 - [MINOR] acl: add srv_is_up() to check that a specific server is up or not
4381 - [DOC] add a few precisions about the use of RDP cookies
4382
Willy Tarreau9d4d9e32010-05-13 22:17:08 +020043832010/05/13 : 1.4.5
4384 - [DOC] report minimum kernel version for tproxy in the Makefile
4385 - [MINOR] add the "ignore-persist" option to conditionally ignore persistence
4386 - [DOC] add the "ignore-persist" option to conditionally ignore persistence
4387 - [DOC] fix ignore-persist/force-persist documentation
4388 - [BUG] cttproxy: socket fd leakage in check_cttproxy_version
4389 - [DOC] doc/configuration.txt: fix typos
4390 - [MINOR] option http-pretend-keepalive is both for FEs and BEs
4391 - [MINOR] fix possible crash in debug mode with invalid responses
4392 - [MINOR] halog: add support for statisticts on status codes
4393 - [OPTIM] halog: use a faster zero test in fgets()
4394 - [OPTIM] halog: minor speedup by using unlikely()
4395 - [OPTIM] halog: speed up fgets2-64 by about 10%
4396 - [DOC] refresh the README file and merge the CONTRIB file into it
4397 - [MINOR] acl: support loading values from files
4398 - [MEDIUM] ebtree: upgrade to version 6.0
4399 - [MINOR] acl trees: add flags and union members to store values in trees
4400 - [MEDIUM] acl: add ability to insert patterns in trees
4401 - [MEDIUM] acl: add tree-based lookups of exact strings
4402 - [MEDIUM] acl: add tree-based lookups of networks
4403 - [MINOR] acl: ignore empty lines and comments in pattern files
4404 - [MINOR] stick-tables: add support for "stick on hdr"
4405
Willy Tarreau9508c1c2010-04-07 23:12:24 +020044062010/04/07 : 1.4.4
4407 - [BUG] appsession should match the whole cookie name
4408 - [CLEANUP] proxy: move PR_O_SSL3_CHK to options2 to release one flag
4409 - [MEDIUM] backend: move the transparent proxy address selection to backend
4410 - [MINOR] add very fast IP parsing functions
4411 - [MINOR] add new tproxy flags for dynamic source address binding
4412 - [MEDIUM] add ability to connect to a server from an IP found in a header
4413 - [BUILD] config: last patch breaks build without CONFIG_HAP_LINUX_TPROXY
4414 - [MINOR] http: make it possible to pretend keep-alive when doing close
4415 - [MINOR] config: report "default-server" instead of "(null)" in error messages
4416
Willy Tarreau75934a12010-03-30 09:50:08 +020044172010/03/30 : 1.4.3
4418 - [CLEANUP] stats: remove printf format warning in stats_dump_full_sess_to_buffer()
4419 - [MEDIUM] session: better fix for connection to servers with closed input
4420 - [DOC] indicate in the doc how to bind to port ranges
4421 - [BUG] backend: L7 hashing must not be performed on incomplete requests
4422 - [TESTS] add a simple program to test connection resets
4423 - [MINOR] cli: "show errors" should display "backend <NONE>" when backend was not used
4424 - [MINOR] config: emit warnings when HTTP-only options are used in TCP mode
4425 - [MINOR] config: allow "slowstart 0s"
4426 - [BUILD] 'make tags' did not consider files ending in '.c'
4427 - [MINOR] checks: add the ability to disable a server in the config
4428
Willy Tarreauda618cb2010-03-17 23:41:57 +010044292010/03/17 : 1.4.2
4430 - [CLEANUP] product branch update
4431 - [DOC] Some more documentation cleanups
4432 - [BUG] clf logs segfault when capturing a non existant header
4433 - [OPTIM] config: only allocate check buffer when checks are enabled
4434 - [MEDIUM] checks: support multi-packet health check responses
4435 - [CLEANUP] session: remove duplicate test
4436 - [BUG] http: don't wait for response data to leave buffer is client has left
4437 - [MINOR] proto_uxst: set accept_date upon accept() to the wall clock time
4438 - [MINOR] stats: don't send empty lines in "show errors"
4439 - [MINOR] stats: make the data dump function reusable for other purposes
4440 - [MINOR] stats socket: add show sess <id> to dump details about a session
4441 - [BUG] stats: connection reset counters must be plain ascii, not HTML
4442 - [BUG] url_param hash may return a down server
4443 - [MINOR] force null-termination of hostname
4444 - [MEDIUM] connect to servers even when the input has already been closed
4445 - [BUG] don't merge anonymous ACLs !
4446 - [BUG] config: fix endless loop when parsing "on-error"
4447 - [MINOR] http: don't mark a server as failed when it returns 501/505
4448 - [OPTIM] checks: try to detect the end of response without polling again
4449 - [BUG] checks: don't report an error when recv() returns an error after data
4450 - [BUG] checks: don't abort when second poll returns an error
4451 - [MINOR] checks: make shutdown() silently fail
4452 - [BUG] http: fix truncated responses on chunk encoding when size divides buffer size
4453 - [BUG] init: unconditionally catch SIGPIPE
4454 - [BUG] checks: don't wait for a close to start parsing the response
4455
Willy Tarreauc5e60c32010-03-04 23:39:19 +010044562010/03/04 : 1.4.1
4457 - [BUG] Clear-cookie path issue
4458 - [DOC] fix typo on stickiness rules
4459 - [BUILD] fix BSD and OSX makefiles for missing files
4460 - [BUILD] includes order breaks OpenBSD build
4461 - [BUILD] fix some build warnings on Solaris with is* macros
4462 - [BUG] logs: don't report "last data" when we have just closed after an error
4463 - [BUG] logs: don't report "proxy request" when server closes early
4464 - [BUILD] fix platform-dependant build issues related to crypt()
4465 - [STATS] count transfer aborts caused by client and by server
4466 - [STATS] frontend requests were not accounted for failed requests
4467 - [MINOR] report total number of processed connections when stopping a proxy
4468 - [DOC] be more clear about the limitation to one single monitor-net entry
4469
Willy Tarreaue18fdfd2010-02-26 14:55:22 +010044702010/02/26 : 1.4.0
4471 - [MINOR] stats: report maint state for tracking servers too
4472 - [DOC] fix summary to add pattern extraction
4473 - [DOC] Documentation cleanups
4474 - [BUG] cfgparse memory leak and missing free calls in deinit()
4475 - [BUG] pxid/puid/luid: don't shift IDs when some of them are forced
4476 - [EXAMPLES] add auth.cfg
4477 - [BUG] uri_auth: ST_SHLGNDS should be 0x00000008 not 0x0000008
4478 - [BUG] uri_auth: do not attemp to convert uri_auth -> http-request more than once
4479 - [BUILD] auth: don't use unnamed unions
4480 - [BUG] config: report unresolvable host names as errors
4481 - [BUILD] fix build breakage with DEBUG_FULL
4482 - [DOC] fix a typo about timeout check and clarify the explanation.
4483 - [MEDIUM] http: don't use trash to realign large buffers
4484 - [STATS] report HTTP requests (total and rate) in frontends
4485 - [STATS] separate frontend and backend HTTP stats
4486 - [MEDIUM] http: revert to use a swap buffer for realignment
4487 - [MINOR] stats: report the request rate in frontends as cell titles
4488 - [MINOR] stats: mark areas with an underline when tooltips are available
4489 - [DOC] reorder some entries to maintain the alphabetical order
4490 - [DOC] cleanup of the keyword matrix
4491
Willy Tarreaub05613d2010-02-02 10:18:28 +010044922010/02/02 : 1.4-rc1
4493 - [MEDIUM] add a maintenance mode to servers
4494 - [MINOR] http-auth: last fix was wrong
4495 - [CONTRIB] add base64rev-gen.c that was used to generate the base64rev table.
4496 - [MINOR] Base64 decode
4497 - [MINOR] generic auth support with groups and encrypted passwords
4498 - [MINOR] add ACL_TEST_F_NULL_MATCH
4499 - [MINOR] http-request: allow/deny/auth support for frontend/backend/listen
4500 - [MINOR] acl: add http_auth and http_auth_group
4501 - [MAJOR] use the new auth framework for http stats
4502 - [DOC] add info about userlists, http-request and http_auth/http_auth_group acls
4503 - [STATS] make it possible to change a CLI connection timeout
4504 - [BUG] patterns: copy-paste typo in type conversion arguments
4505 - [MINOR] pattern: make the converter more flexible by supporting void* and int args
4506 - [MINOR] standard: str2mask: string to netmask converter
4507 - [MINOR] pattern: add support for argument parsers for converters
4508 - [MINOR] pattern: add the "ipmask()" converting function
4509 - [MINOR] config: off-by-one in "stick-table" after list of converters
4510 - [CLEANUP] acl, patterns: make use of my_strndup() instead of malloc+memcpy
4511 - [BUG] restore accidentely removed line in last patch !
4512 - [MINOR] checks: make the HTTP check code add the CRLF itself
4513 - [MINOR] checks: add the server's status in the checks
4514 - [BUILD] halog: make without arch-specific optimizations
4515 - [BUG] halog: fix segfault in case of empty log in PCT mode (cherry picked from commit fe362fe4762151d209b9656639ee1651bc2b329d)
4516 - [MINOR] http: disable keep-alive when process is going down
4517 - [MINOR] acl: add build_acl_cond() to make it easier to add ACLs in config
4518 - [CLEANUP] config: use build_acl_cond() instead of parse_acl_cond()
4519 - [CLEANUP] config: use warnif_cond_requires_resp() to check for bad ACLs
4520 - [MINOR] prepare req_*/rsp_* to receive a condition
4521 - [CLEANUP] config: specify correct const char types to warnif_* functions
4522 - [MEDIUM] config: factor out the parsing of 20 req*/rsp* keywords
4523 - [MEDIUM] http: make the request filter loop check for optional conditions
4524 - [MEDIUM] http: add support for conditional request filter execution
4525 - [DOC] add some build info about the AIX platform (cherry picked from commit e41914c77edbc40aebf827b37542d37d758e371e)
4526 - [MEDIUM] http: add support for conditional request header addition
4527 - [MEDIUM] http: add support for conditional response header rewriting
4528 - [DOC] add some missing ACLs about response header matching
4529 - [MEDIUM] http: add support for proxy authentication
4530 - [MINOR] http-auth: make the 'unless' keyword work as expected
4531 - [CLEANUP] config: use build_acl_cond() to simplify http-request ACL parsing
4532 - [MEDIUM] add support for anonymous ACLs
4533 - [MEDIUM] http: switch to tunnel mode after status 101 responses
4534 - [MEDIUM] http: stricter processing of the CONNECT method
4535 - [BUG] config: reset check request to avoid double free when switching to ssl/sql
4536 - [MINOR] config: fix too large ssl-hello-check message.
4537 - [BUG] fix error response in case of server error
4538
Willy Tarreau2eba6aa2010-01-25 23:28:05 +010045392010/01/25 : 1.4-dev8
4540 - [CLEANUP] Keep in sync "defaults" support between documentation and code
4541 - [MEDIUM] http: add support for Proxy-Connection header
4542 - [CRITICAL] buffers: buffer_insert_line2 must not change the ->w entry
4543 - [MINOR] http: remove a copy-paste typo in transaction cleaning
4544 - [BUG] http: trim any excess buffer data when recycling a connection
4545
Willy Tarreau6939b552010-01-25 01:54:37 +010045462010/01/25 : 1.4-dev7
4547 - [BUG] appsession: possible memory leak in case of out of memory condition
4548 - [MINOR] config: don't accept 'appsession' in defaults section
4549 - [MINOR] Add function to parse a size in configuration
4550 - [MEDIUM] Add stick table (persistence) management functions and types
4551 - [MEDIUM] Add pattern fetch management types and functions
4552 - [MEDIUM] Add src dst and dport pattern fetches.
4553 - [MEDIUM] Add stick table configuration and init.
4554 - [MEDIUM] Add stick and store rules analysers.
4555 - [MINOR] add option "mysql-check" to use MySQL health checks
4556 - [BUG] health checks: fix requeued message
4557 - [OPTIM] remove SSP_O_VIA and SSP_O_STATUS
4558 - [BUG] checks: fix newline termination
4559 - [MINOR] acl: add fe_id/so_id to match frontend's and socket's id
4560 - [BUG] appsession's sessid must be reset at end of transaction
4561 - [BUILD] appsession did not build anymore under gcc-2.95
4562 - [BUG] server redirection used an uninitialized string.
4563 - [MEDIUM] http: fix handling of message pointers
4564 - [MINOR] http: fix double slash prefix with server redirect
4565 - [MINOR] http redirect: add the ability to append a '/' to the URL
4566 - [BUG] stream_interface: fix retnclose and remove cond_close
4567 - [MINOR] http redirect: don't explicitly state keep-alive on 1.1
4568 - [MINOR] http: move appsession 'sessid' from session to http_txn
4569 - [OPTIM] reorder http_txn to optimize cache lines placement
4570 - [MINOR] http: differentiate waiting for new request and waiting for a complete requst
4571 - [MINOR] http: add a separate "http-keep-alive" timeout
4572 - [MINOR] config: remove undocumented and buggy 'timeout appsession'
4573 - [DOC] fix various too large lines
4574 - [DOC] remove several trailing spaces
4575 - [DOC] add the doc about stickiness
4576 - [BUILD] remove a warning in standard.h on AIX
4577 - [BUG] checks: chars are unsigned on AIX, check was always true
4578 - [CLEANUP] stream_sock: MSG_NOSIGNAL is only for send(), not recv()
4579 - [BUG] check: we must not check for error before reading a response
4580 - [BUG] buffers: remove remains of wrong obsolete length check
4581 - [OPTIM] stream_sock: don't shutdown(write) when the socket is in error
4582 - [BUG] http: don't count req errors on client resets or t/o during keep-alive
4583 - [MEDIUM] http: don't switch to tunnel mode upon close
4584 - [DOC] add documentation about connection header processing
4585 - [MINOR] http: add http_remove_header2() to remove a header value.
4586 - [MINOR] tools: add a "word_match()" function to match words and ignore spaces
4587 - [MAJOR] http: rework request Connection header handling
4588 - [MAJOR] http: rework response Connection header handling
4589 - [MINOR] add the ability to force kernel socket buffer size.
4590 - [BUG] http_server_error() must not purge a previous pending response
4591 - [OPTIM] http: don't delay response if next request is incomplete
4592 - [MINOR] add the "force-persist" statement to force persistence on down servers
4593 - [MINOR] http: logs must report persistent connections to down servers
4594 - [BUG] buffer_replace2 must never change the ->w entry
4595
Willy Tarreau11f8f542010-01-08 07:49:44 +010045962010/01/08 : 1.4-dev6
4597 - [BUILD] warning in stream_interface.h
4598 - [BUILD] warning ultoa_r returns char *
4599 - [MINOR] hana: only report stats if it is enabled
4600 - [MINOR] stats: add "a link" & "a href" for sockets
4601 - [MINOR]: stats: add show-legends to report additional informations
4602 - [MEDIUM] default-server support
4603 - [BUG]: add 'observer', 'on-error', 'error-limit' to supported options list
4604 - [MINOR] stats: add href to tracked server
4605 - [BUG] stats: show UP/DOWN status also in tracking servers
4606 - [DOC] Restore ability to search a keyword at the beginning of a line
4607 - [BUG] stats: cookie should be reported under backend not under proxy
4608 - [BUG] cfgparser/stats: fix error message
4609 - [BUG] http: disable auto-closing during chunk analysis
4610 - [BUG] http: fix hopefully last closing issue on data forwarding
4611 - [DEBUG] add an http_silent_debug function to debug HTTP states
4612 - [MAJOR] http: fix again the forward analysers
4613 - [BUG] http_process_res_common() must not skip the forward analyser
4614 - [BUG] http: some possible missed close remain in the forward chain
4615 - [BUG] http: redirect needed to be updated after recent changes
4616 - [BUG] http: don't set no-linger on response in case of forced close
4617 - [MEDIUM] http: restore the original behaviour of option httpclose
4618 - [TESTS] add a file to test various connection modes
4619 - [BUG] http: check options before the connection header
4620 - [MAJOR] session: fix the order by which the analysers are run
4621 - [MEDIUM] session: also consider request analysers added during response
4622 - [MEDIUM] http: make safer use of the DONT_READ and AUTO_CLOSE flags
4623 - [BUG] http: memory leak with captures when using keep-alive
4624 - [BUG] http: fix for capture memory leak was incorrect
4625 - [MINOR] http redirect: use proper call to return last response
4626 - [MEDIUM] http: wait for some flush of the response buffer before a new request
4627 - [MEDIUM] session: limit the number of analyser loops
4628
Willy Tarreau1f445892010-01-03 23:23:36 +010046292010/01/03 : 1.4-dev5
4630 - [MINOR] server tracking: don't care about the tracked server's mode
4631 - [MEDIUM] appsession: add "len", "prefix" and "mode" options
4632 - [MEDIUM] appsession: add the "request-learn" option
4633 - [BUG] Configuration parser bug when escaping characters
4634 - [MINOR] CSS & HTML fun
4635 - [MINOR] Collect & provide http response codes received from servers
4636 - [BUG] Fix silly typo: hspr_other -> hrsp_other
4637 - [MINOR] Add "a name" to stats page
4638 - [MINOR] add additional "a href"s to stats page
4639 - [MINOR] Collect & provide http response codes for frontends, fix backends
4640 - [DOC] some small spell fixes and unifications
4641 - [MEDIUM] Decrease server health based on http responses / events, version 3
4642 - [BUG] format '%d' expects type 'int', but argument 5 has type 'long int'
4643 - [BUG] config: fix erroneous check on cookie domain names, again
4644 - [BUG] Healthchecks: get a proper error code if connection cannot be completed immediately
4645 - [DOC] trivial fix for man page
4646 - [MINOR] config: report all supported options for the "bind" keyword
4647 - [MINOR] tcp: add support for the defer_accept bind option
4648 - [MINOR] unix socket: report the socket path in case of bind error
4649 - [CONTRIB] halog: support searching by response time
4650 - [DOC] add a reminder about obsolete documents
4651 - [DOC] point to 1.4 doc, not 1.3
4652 - [DOC] option tcp-smart-connect was missing from index
4653 - [MINOR] http: detect connection: close earlier
4654 - [CLEANUP] sepoll: clean up the fd_clr/fd_set functions
4655 - [OPTIM] move some rarely used fields out of fdtab
4656 - [MEDIUM] fd: merge fd_list into fdtab
4657 - [MAJOR] buffer: flag BF_DONT_READ to disable reads when not required
4658 - [MINOR] http: add new transaction flags for keep-alive and content-length
4659 - [MEDIUM] http request: parse connection, content-length and transfer-encoding
4660 - [MINOR] http request: update the TX_SRV_CONN_KA flag on rewrite
4661 - [MINOR] http request: simplify the test of no-data
4662 - [MEDIUM] http request: simplify POST length detection
4663 - [MEDIUM] http request: make use of pre-parsed transfer-encoding header
4664 - [MAJOR] http: create the analyser which waits for a response
4665 - [MINOR] http: pre-set the persistent flags in the transaction
4666 - [MEDIUM] http response: check body length and set transaction flags
4667 - [MINOR] http response: update the TX_CLI_CONN_KA flag on rewrite
4668 - [MINOR] http: remove the last call to stream_int_return
4669 - [IMPORT] import ebtree v5.0 into directory ebtree/
4670 - [MEDIUM] build: switch ebtree users to use new ebtree version
4671 - [CLEANUP] ebtree: remove old unused files
4672 - [BUG] definitely fix regparm issues between haproxy core and ebtree
4673 - [CLEANUP] ebtree: cast to char * to get rid of gcc warning
4674 - [BUILD] missing #ifndef in ebmbtree.h
4675 - [BUILD] missing #ifndef in ebsttree.h
4676 - [MINOR] tools: add hex2i() function to convert hex char to int
4677 - [MINOR] http: create new MSG_BODY sub-states
4678 - [BUG] stream_sock: BUF_INFINITE_FORWARD broke splice on 64-bit platforms
4679 - [DOC] option is "defer-accept", not "defer_accept"
4680 - [MINOR] http: keep pointer to beginning of data
4681 - [BUG] x-original-to: name was not set in default instance
4682 - [MINOR] http: detect tunnel mode and set it in the session
4683 - [BUG] config: fix error message when config file is not found
4684 - [BUG] config: fix wrong handling of too large argument count
4685 - [BUG] config: disable 'option httplog' on TCP proxies
4686 - [BUG] config: fix erroneous check on cookie domain names
4687 - [BUG] config: cookie domain was ignored in defaults sections
4688 - [MINOR] config: support passing multiple "domain" statements to cookies
4689 - [MINOR] ebtree: add functions to lookup non-null terminated strings
4690 - [MINOR] config: don't report error on all subsequent files on failure
4691 - [BUG] second fix for the printf format warning
4692 - [BUG] check_post: limit analysis to the buffer length
4693 - [MEDIUM] http: process request body in a specific analyser
4694 - [MEDIUM] backend: remove HTTP POST parsing from get_server_ph_post()
4695 - [MAJOR] http: completely process the "connection" header
4696 - [MINOR] http: only consider chunk encoding with HTTP/1.1
4697 - [MAJOR] buffers: automatically compute the maximum buffer length
4698 - [MINOR] http: move the http transaction init/cleanup code to proto_http
4699 - [MINOR] http: move 1xx handling earlier to eliminate a lot of ifs
4700 - [MINOR] http: introduce a new synchronisation state : HTTP_MSG_DONE
4701 - [MEDIUM] http: rework chunk-size parser
4702 - [MEDIUM] http: add a new transaction flags indicating if we know the transfer length
4703 - [MINOR] buffers: add buffer_ignore() to skip some bytes
4704 - [BUG] http: offsets are relative to the buffer, not to ->som
4705 - [MEDIUM] http: automatically re-aling request buffer
4706 - [BUG] http: body parsing must consider the start of message
4707 - [MINOR] new function stream_int_cond_close()
4708 - [MAJOR] http: implement body parser
4709 - [BUG] http: typos on several unlikely() around header insertion
4710 - [BUG] stream_sock: wrong max computation on recv
4711 - [MEDIUM] http: rework the buffer alignment logic
4712 - [BUG] buffers: wrong size calculation for displaced data
4713 - [MINOR] stream_sock: prepare for closing when all pending data are sent
4714 - [MEDIUM] http: add two more states for the closing period
4715 - [MEDIUM] http: properly handle "option forceclose"
4716 - [MINOR] stream_sock: add SI_FL_NOLINGER for faster close
4717 - [MEDIUM] http: make forceclose use SI_FL_NOLINGER
4718 - [MEDIUM] session: set SI_FL_NOLINGER when aborting on write timeouts
4719 - [MEDIUM] http: add some SI_FL_NOLINGER around server errors
4720 - [MINOR] config: option forceclose is valid in frontends too
4721 - [BUILD] halog: insufficient include path in makefile
4722 - [MEDIUM] http: make the analyser not rely on msg being initialized anymore
4723 - [MEDIUM] http: make the parsers able to wait for a buffer flush
4724 - [MAJOR] http: add support for option http-server-close
4725 - [BUG] http: ensure we abort data transfer on write error
4726 - [BUG] last fix was overzealous and disabled server-close
4727 - [BUG] http: fix erroneous trailers size computation
4728 - [MINOR] stream_sock: enable MSG_MORE when forwarding finite amount of data
4729 - [OPTIM] http: set MSG_MORE on response when a pipelined request is pending
4730 - [BUG] http: redirects were broken by chunk changes
4731 - [BUG] http: the request URI pointer is relative to the buffer
4732 - [OPTIM] http: don't immediately enable reading on request
4733 - [MINOR] http: move redirect messages to HTTP/1.1 with a content-length
4734 - [BUG] http: take care of errors, timeouts and aborts during the data phase
4735 - [MINOR] http: don't wait for sending requests to the server
4736 - [MINOR] http: make the conditional redirect support keep-alive
4737 - [BUG] http: fix cookie parser to support spaces and commas in values
4738 - [MINOR] config: some options were missing for "redirect"
4739 - [MINOR] redirect: add support for unconditional rules
4740 - [MINOR] config: centralize proxy struct initialization
4741 - [MEDIUM] config: remove the limitation of 10 reqadd/rspadd statements
4742 - [MEDIUM] config: remove the limitation of 10 config files
4743 - [CLEANUP] http: remove a remaining impossible condition
4744 - [OPTIM] http: optimize a bit the construct of the forward loops
4745
Willy Tarreauc82a9e52009-10-12 06:40:53 +020047462009/10/12 : 1.4-dev4
4747 - [DOC] add missing rate_lim and rate_max
4748 - [MAJOR] struct chunk rework
4749 - [MEDIUM] Health check reporting code rework + health logging, v3
4750 - [BUG] check if rise/fall has an argument and it is > 0
4751 - [MINOR] health checks logging unification
4752 - [MINOR] add "description", "node" and show-node"/"show-desc", remove "node-name", v2
4753 - [MINOR] Allow dots in show-node & add "white-space: nowrap" in th.pxname.
4754 - [DOC] Add information about http://haproxy.1wt.eu/contrib.html
4755 - [MINOR] Introduce include/types/counters.h
4756 - [CLEANUP] Move counters to dedicated structures
4757 - [MINOR] Add "clear counters" to clear statistics counters
4758 - [MEDIUM] Collect & provide separate statistics for sockets, v2
4759 - [BUG] Fix NULL pointer dereference in stats_check_uri_auth(), v2
4760 - [MINOR] acl: don't report valid acls as potential mistakes
4761 - [MINOR] Add cut_crlf(), ltrim(), rtrim() and alltrim()
4762 - [MINOR] Add chunk_htmlencode and chunk_asciiencode
4763 - [MINOR] Capture & display more data from health checks, v2
4764 - [BUG] task.c: don't assing last_timer to node-less entries
4765 - [BUG] http stats: large outputs sometimes got some parts chopped off
4766 - [MINOR] backend: export some functions to recount servers
4767 - [MINOR] backend: uninline some LB functions
4768 - [MINOR] include time.h from freq_ctr.h as is uses "now".
4769 - [CLEANUP] backend: move LB algos to individual files
4770 - [MINOR] lb_map: reorder code in order to ease integration of new hash functions
4771 - [CLEANUP] proxy: move last lb-specific bits to their respective files
4772 - [MINOR] backend: separate declarations of LB algos from their lookup method
4773 - [MINOR] backend: reorganize the LB algorithm selection
4774 - [MEDIUM] backend: introduce the "static-rr" LB algorithm
4775 - [MINOR] report list of supported pollers with -vv
4776 - [DOC] log-health-checks is an option, not a directive
4777 - [MEDIUM] new option "independant-streams" to stop updating read timeout on writes
4778 - [BUG] stats: don't call buffer_shutw(), but ->shutw() instead
4779 - [MINOR] stats: strip CR and LF from the input command line
4780 - [BUG] don't refresh timeouts late after detected activity
4781 - [MINOR] stats_dump_errors_to_buffer: use buffer_feed_chunk()
4782 - [MINOR] stats_dump_sess_to_buffer: use buffer_feed_chunk()
4783 - [MINOR] stats: make stats_dump_raw_to_buffer() use buffer_feed_chunk
4784 - [MEDIUM] stats: don't use s->ana_state anymore
4785 - [MINOR] remove now obsolete ana_state from the session struct
4786 - [MEDIUM] stats: make HTTP stats use an I/O handler
4787 - [MEDIUM] stream_int: adjust WAIT_ROOM handling
4788 - [BUG] config: look for ID conflicts in all sockets, not only last ones.
4789 - [MINOR] config: reference file and line with any listener/proxy/server declaration
4790 - [MINOR] config: report places of duplicate names or IDs
4791 - [MINOR] config: add pointer to file name in block/redirect/use_backend/monitor rules
4792 - [MINOR] tools: add a new get_next_id() function
4793 - [MEDIUM] config: automatically find unused IDs for proxies, servers and listeners
4794 - [OPTIM] counters: move some max numbers to the counters struct
4795 - [BUG] counters: fix segfault on missing counters for a listener
4796 - [MEDIUM] backend: implement consistent hashing variation
4797 - [MINOR] acl: add fe_conn, be_conn, queue, avg_queue
4798 - [MINOR] stats: use 'clear counters all' to clear all values
4799 - [MEDIUM] add access restrictions to the stats socket
4800 - [MINOR] buffers: add buffer_feed2() and make buffer_feed() measure string length
4801 - [MINOR] proxy: provide function to retrieve backend/server pointers
4802 - [MINOR] add the "initial weight" to the server struct.
4803 - [MEDIUM] stats: add the "get weight" command to report a server's weight
4804 - [MEDIUM] stats: add the "set weight" command
4805 - [BUILD] add a 'make tags' target
4806 - [MINOR] stats: add support for numeric IDs in set weight/get weight
4807 - [MINOR] stats: use a dedicated state to output static data
4808 - [OPTIM] stats: check free space before trying to print
4809
Willy Tarreau9f389e02009-09-24 00:12:50 +020048102009/09/24 : 1.4-dev3
4811 - [BUILD] compilation of haproxy-1.4-dev2 on FreeBSD
4812 - [MEDIUM] Collect & show information about last health check, v3
4813 - [MINOR] export the hostname variable so that all the code can access it
4814 - [MINOR] stats: add a new node-name setting
4815 - [MEDIUM] remove old experimental tcpsplice option
4816 - [BUILD] fix build for systems without SOL_TCP
4817 - [MEDIUM] move connection establishment from backend to the SI.
4818 - [MEDIUM] make the global stats socket part of a frontend
4819 - [MEDIUM] session: account per-listener connections
4820 - [MINOR] session: switch to established state if no connect function
4821 - [MEDIUM] make the unix stats sockets use the generic session handler
4822 - [CLEANUP] unix: remove uxst_process_session()
4823 - [CLEANUP] move remaining stats sockets code to dumpstats
4824 - [MINOR] move the initial task's nice value to the listener
4825 - [MINOR] cleanup set_session_backend by using pre-computed analysers
4826 - [MINOR] set s->srv_error according to the analysers
4827 - [MEDIUM] set rep->analysers from fe and be analysers
4828 - [MEDIUM] replace BUFSIZE with buf->size in computations
4829 - [MEDIUM] make it possible to change the buffer size in the configuration
4830 - [MEDIUM] report error on buffer writes larger than buffer size
4831 - [MEDIUM] stream_interface: add and use ->update function to resync
4832 - [CLEANUP] remove ifdef MSG_NOSIGNAL and define it instead
4833 - [MEDIUM] remove TCP_CORK and make use of MSG_MORE instead
4834 - [BUG] tarpit did not work anymore
4835 - [MINOR] acl: add support for hdr_ip to match IP addresses in headers
4836 - [MAJOR] buffers: fix misuse of the BF_SHUTW_NOW flag
4837 - [MINOR] buffers: provide more functions to handle buffer data
4838 - [MEDIUM] buffers: provide new buffer_feed*() function
4839 - [MINOR] buffers: add peekchar and peekline functions for stream interfaces
4840 - [MINOR] buffers: provide buffer_si_putchar() to send a char from a stream interface
4841 - [BUG] buffer_forward() would not correctly consider data already scheduled
4842 - [MINOR] buffers: add buffer_cut_tail() to cut only unsent data
4843 - [MEDIUM] stream_interface: make use of buffer_cut_tail() to report errors
4844 - [MAJOR] http: add support for HTTP 1xx informational responses
4845 - [MINOR] buffers: inline buffer_si_putchar()
4846 - [MAJOR] buffers: split BF_WRITE_ENA into BF_AUTO_CONNECT and BF_AUTO_CLOSE
4847 - [MAJOR] buffers: fix the BF_EMPTY flag's meaning
4848 - [BUG] stream_interface: SI_ST_CLO must have buffers SHUT
4849 - [MINOR] stream_sock: don't set SI_FL_WAIT_DATA if BF_SHUTW_NOW is set
4850 - [MEDIUM] add support for infinite forwarding
4851 - [BUILD] stream_interface: fix conflicting declaration
4852 - [BUG] buffers: buffer_forward() must not always clear BF_OUT_EMPTY
4853 - [BUG] variable buffer size ignored at initialization time
4854 - [MINOR] ensure that buffer_feed() and buffer_skip() set BF_*_PARTIAL
4855 - [BUG] fix buffer_skip() and buffer_si_getline() to correctly handle wrap-arounds
4856 - [MINOR] stream_interface: add SI_FL_DONT_WAKE flag
4857 - [MINOR] stream_interface: add iohandler callback
4858 - [MINOR] stream_interface: add functions to support running as internal/external tasks
4859 - [MEDIUM] session: call iohandler for embedded tasks (applets)
4860 - [MINOR] add a ->private member to the stream_interface
4861 - [MEDIUM] stats: prepare the connection for closing before dumping
4862 - [MEDIUM] stats: replace the stats socket analyser with an SI applet
4863
Willy Tarreau68dcd252009-08-09 22:57:09 +020048642009/08/09 : 1.4-dev2
4865 - [BUG] task: fix possible crash when some timeouts are not configured
4866 - [BUG] log: option tcplog would log to global if no logger was defined
4867
Willy Tarreaub03d2982009-07-29 22:38:32 +020048682009/07/29 : 1.4-dev1
4869 - [MINOR] acl: add support for matching of RDP cookies
4870 - [MEDIUM] add support for RDP cookie load-balancing
4871 - [MEDIUM] add support for RDP cookie persistence
4872 - [MINOR] add a new CLF log format
4873 - [MINOR] startup: don't imply -q with -D
4874 - [BUG] ensure that we correctly re-start old process in case of error
4875 - [MEDIUM] add support for binding to source port ranges during connect
4876 - [MINOR] config: track "no option"/"option" changes
4877 - [MINOR] config: support resetting options do default values
4878 - [MEDIUM] implement option tcp-smart-accept at the frontend
4879 - [MEDIUM] stream_sock: implement tcp-cork for use during shutdowns on Linux
4880 - [MEDIUM] implement tcp-smart-connect option at the backend
4881 - [MEDIUM] add support for TCP MSS adjustment for listeners
4882 - [MEDIUM] support setting a server weight to zero
4883 - [MINOR] make DEFAULT_MAXCONN user-configurable at build time
4884 - [MAJOR] session: don't clear buffer status flags anymore
4885 - [MAJOR] session: only check for timeouts when they have just occurred.
4886 - [MAJOR] session: simplify buffer error handling
4887 - [MEDIUM] config: split parser and checker in two functions
4888 - [MEDIUM] config: support loading multiple configuration files
4889 - [MEDIUM] stream_sock: don't close prematurely when nolinger is set
4890 - [MEDIUM] session: rework buffer analysis to permit permanent analysers
4891 - [MEDIUM] splice: set the capability on each stream_interface
4892 - [BUG] http: redirect rules were processed too early
4893 - [CLEANUP] remove unused DEBUG_PARSE_NO_SPEEDUP define
4894 - [MEDIUM] http: split request waiter from request processor
4895 - [MEDIUM] session: tell analysers what bit they were called for
4896 - [MAJOR] http: complete splitting of the remaining stages
4897 - [MINOR] report in the proxies the requirements for ACLs
4898 - [MINOR] http: rely on proxy->acl_requires to allocate hdr_idx
4899 - [MINOR] acl: add HTTP protocol detection (req_proto_http)
4900 - [MINOR] prepare callers of session_set_backend to handle errors
4901 - [BUG] default ACLs did not properly set the ->requires flag
4902 - [MEDIUM] allow a TCP frontend to switch to an HTTP backend
4903 - [MINOR] ensure we can jump from swiching rules to http without data
4904 - [MINOR] http: take http request timeout from the backend
4905 - [MINOR] allow TCP inspection rules to make use of HTTP ACLs
4906 - [BUILD] report commit date and not author's date as build date
4907 - [MINOR] acl: don't complain anymore when using L7 acls in TCP
4908 - [BUG] stream_sock: always shutdown(SHUT_WR) before closing
4909 - [BUG] stream_sock: don't stop reading when the poller reports an error
4910 - [BUG] config: tcp-request content only accepts "if" or "unless"
4911 - [BUG] task: fix possible timer drift after update
4912 - [MINOR] apply tcp-smart-connect option for the checks too
4913 - [MINOR] stats: better displaying in MSIE
4914 - [MINOR] config: improve error reporting in global section
4915 - [MINOR] config: improve error reporting in listen sections
4916 - [MINOR] config: the "capture" keyword is not allowed in backends
4917 - [MINOR] config: improve error reporting when checking configuration
4918 - [BUILD] fix a minor build warning on AIX
4919 - [BUILD] use "git cmd" instead of "git-cmd"
4920 - [CLEANUP] report 2009 not 2008 in the copyright banner.
4921 - [MINOR] print usage on the stats sockets upon invalid commands
4922 - [MINOR] acl: detect and report potential mistakes in ACLs
4923 - [BUILD] fix incorrect printf arg count with tcp_splice
4924 - [BUG] fix random pauses on last segment of a series
4925 - [BUILD] add support for build under Cygwin
4926
Willy Tarreau79158882009-06-09 11:59:08 +020049272009/06/09 : 1.4-dev0
4928 - exact copy of 1.3.18
4929
Willy Tarreaubeb05ae2009-05-10 20:27:47 +020049302009/05/10 : 1.3.18
4931 - [MEDIUM] add support for "balance hdr(name)"
4932 - [CLEANUP] give a little bit more information in error message
4933 - [MINOR] add X-Original-To: header
4934 - [BUG] x-original-to: fix missing initialization to default value
4935 - [BUILD] spec file: fix broken pipe during rpmbuild and add man file
4936 - [MINOR] improve reporting of misplaced acl/reqxxx rules
4937 - [MEDIUM] http: add options to ignore invalid header names
4938 - [MEDIUM] http: capture invalid requests/responses even if accepted
4939 - [BUILD] add format(printf) to printf-like functions
4940 - [MINOR] fix several printf formats and missing arguments
4941 - [BUG] stats: total and lbtot are unsigned
4942 - [MINOR] fix a few remaining printf-like formats on 64-bit platforms
4943 - [CLEANUP] remove unused make option from haproxy.spec
4944 - [BUILD] make it possible to pass alternative arch at build time
4945 - [MINOR] switch all stat counters to 64-bit
4946 - [MEDIUM] ensure we don't recursively call pool_gc2()
4947 - [CRITICAL] uninitialized response field can sometimes cause crashes
4948 - [BUG] fix wrong pointer arithmetics in HTTP message captures
4949 - [MINOR] rhel init script : support the reload operation
4950 - [MINOR] add basic signal handling functions
4951 - [BUILD] add signal.o to all makefiles
4952 - [MEDIUM] call signal_process_queue from run_poll_loop
4953 - [MEDIUM] pollers: don't wait if a signal is pending
4954 - [MEDIUM] convert all signals to asynchronous signals
4955 - [BUG] O(1) pollers should check their FD before closing it
4956 - [MINOR] don't close stdio fds twice
4957 - [MINOR] add options dontlog-normal and log-separate-errors
4958 - [DOC] minor fixes and rearrangements
4959 - [BUG] fix parser crash on unconditional tcp content rules
4960 - [DOC] rearrange the configuration manual and add a summary
4961 - [MINOR] standard: provide a new 'my_strndup' function
4962 - [MINOR] implement per-logger log level limitation
4963 - [MINOR] compute the max of sessions/s on fe/be/srv
4964 - [MINOR] stats: report max sessions/s and limit in CSV export
4965 - [MINOR] stats: report max sessions/s and limit in HTML stats
4966 - [MINOR] stats/html: use the arial font before helvetica
4967
Willy Tarreauf459b422009-03-29 15:26:57 +020049682009/03/29 : 1.3.17
4969 - Update specfile to build for v2.6 kernel.
4970 - [BUG] reset the stream_interface connect timeout upon connect or error
4971 - [BUG] reject unix accepts when connection limit is reached
4972 - [MINOR] show sess: report number of calls to each task
4973 - [BUG] don't call epoll_ctl() on closed sockets
4974 - [BUG] stream_sock: disable I/O on fds reporting an error
4975 - [MINOR] sepoll: don't count two events on the same FD.
4976 - [MINOR] show sess: report a lot more information about sessions
4977 - [BUG] stream_sock: check for shut{r,w} before refreshing some timeouts
4978 - [BUG] don't set an expiration date directly from now_ms
4979 - [MINOR] implement ulltoh() to write HTML-formatted numbers
4980 - [MINOR] stats/html: group digits by 3 to clarify numbers
4981 - [BUILD] remove haproxy-small.spec
4982 - [BUILD] makefile: remove unused references to linux24eold and EPOLL_CTL_WORKAROUND
4983
Willy Tarreau8019ffa2009-03-22 23:46:12 +010049842009/03/22 : 1.3.16
4985 - [BUILD] Fixed Makefile for linking pcre
4986 - [CONTRIB] selinux policy for haproxy
4987 - [MINOR] show errors: encode backslash as well as non-ascii characters
4988 - [MINOR] cfgparse: some cleanups in the consistency checks
4989 - [MINOR] cfgparse: set backends to "balance roundrobin" by default
4990 - [MINOR] tcp-inspect: permit the use of no-delay inspection
4991 - [MEDIUM] reverse internal proxy declaration order to match configuration
4992 - [CLEANUP] config: catch and report some possibly wrong rule ordering
4993 - [BUG] connect timeout is in the stream interface, not the buffer
4994 - [BUG] session: errors were not reported in termination flags in TCP mode
4995 - [MINOR] tcp_request: let the caller take care of errors and timeouts
4996 - [CLEANUP] http: remove some commented out obsolete code in process_response
4997 - [MINOR] update ebtree to version 4.1
4998 - [MEDIUM] scheduler: get rid of the 4 trees thanks and use ebtree v4.1
4999 - [BUG] sched: don't leave 3 lasts tasks unprocessed when niced tasks are present
5000 - [BUG] scheduler: fix improper handling of duplicates __task_queue()
5001 - [MINOR] sched: permit a task to stay up between calls
5002 - [MINOR] task: keep a task count and clean up task creators
5003 - [MINOR] stats: report number of tasks (active and running)
5004 - [BUG] server check intervals must not be null
5005 - [OPTIM] stream_sock: don't retry to read after a large read
5006 - [OPTIM] buffer: new BF_READ_DONTWAIT flag reduces EAGAIN rates
5007 - [MEDIUM] session: don't resync FSMs on non-interesting changes
5008 - [BUG] check for global.maxconn before doing accept()
5009 - [OPTIM] sepoll: do not re-check whole list upon accepts
5010
Willy Tarreau8185ced2009-03-09 22:45:53 +010050112009/03/09 : 1.3.16-rc2
5012 - [BUG] stream_sock: write timeout must be updated when forwarding !
5013
Willy Tarreauff63b432009-03-09 01:03:42 +010050142009/03/09 : 1.3.16-rc1
5015 - appsessions: cleanup DEBUG_HASH and initialize request_counter
5016 - [MINOR] acl: add new keyword "connslots"
5017 - [MINOR] cfgparse: fix off-by 2 in error message size
5018 - [BUILD] fix build with gcc 4.3
5019 - [BUILD] fix MANDIR default location to match documentation
5020 - [TESTS] add a debug patch to help trigger the stats bug
5021 - [BUG] Flush buffers also where there are exactly 0 bytes left
5022 - [MINOR] Allow to specify a domain for a cookie
5023 - [BUG/CLEANUP] cookiedomain -> cookie_domain rename + free(p->cookie_domain)
5024 - [MEDIUM] Fix memory freeing at exit
5025 - [MEDIUM] Fix memory freeing at exit, part 2
5026 - [BUG] Fix listen & more of 2 couples <ip>:<port>
5027 - [DOC] remove buggy comment for use_backend
5028 - [CRITICAL] fix server state tracking: it was O(n!) instead of O(n)
5029 - [MEDIUM] add support for URI hash depth and length limits
5030 - [MINOR] permit renaming of x-forwarded-for header
5031 - [BUILD] fix Makefile.bsd and Makefile.osx for stream_interface
5032 - [BUILD] Haproxy won't compile if DEBUG_FULL is defined
5033 - [MEDIUM] upgrade to ebtree v4.0
5034 - [DOC] update the README file with new build options
5035 - [MEDIUM] reduce risk of event starvation in ev_sepoll
5036 - [MEDIUM] detect streaming buffers and tag them as such
5037 - [MEDIUM] add support for conditional HTTP redirection
5038 - [BUILD] make install should depend on haproxy not "all"
5039 - [DEBUG] add a TRACE macro to facilitate runtime data extraction
5040 - [BUG] event pollers must not wait if a task exists in the run queue
5041 - [BUG] queue management: wake oldest request in queues
5042 - [BUG] log: reported queue position was offed-by-one
5043 - [BUG] fix the dequeuing logic to ensure that all requests get served
5044 - [DOC] documentation for the "retries" parameter was missing.
5045 - [MEDIUM] implement a monotonic internal clock
5046 - [MEDIUM] further improve monotonic clock by check forward jumps
5047 - [OPTIM] add branch prediction hints in list manipulations
5048 - [MAJOR] replace ultree with ebtree in wait-queues
5049 - [BUG] we could segfault during exit while freeing uri_auths
5050 - [BUG] wqueue: perform proper timeout comparisons with wrapping values
5051 - [MINOR] introduce now_ms, the current date in milliseconds
5052 - [BUG] disable buffer read timeout when reading stats
5053 - [MEDIUM] rework the wait queue mechanism
5054 - [BUILD] change declaration of base64tab to fix build with Intel C++
5055 - [OPTIM] shrink wake_expired_tasks() by using task_wakeup()
5056 - [MAJOR] use an ebtree instead of a list for the run queue
5057 - [MEDIUM] introduce task->nice and boot access to statistics
5058 - [OPTIM] task_queue: assume most consecutive timers are equal
5059 - [BUILD] silent a warning in unlikely() with gcc 4.x
5060 - [MAJOR] convert all expiration timers from timeval to ticks
5061 - [BUG] use_backend would not correctly consider "unless"
5062 - [TESTS] added test-acl.cfg to test some ACL combinations
5063 - [MEDIUM] add support for configuration keyword registration
5064 - [MEDIUM] modularize the global "stats" keyword configuration parser
5065 - [MINOR] cfgparse: add support for warnings in external functions
5066 - [MEDIUM] modularize the "timeout" keyword configuration parser
5067 - [MAJOR] implement tcp request content inspection
5068 - [MINOR] acl: add a new parsing function: parse_dotted_ver
5069 - [MINOR] acl: add req_ssl_ver in TCP, to match an SSL version
5070 - [CLEANUP] remove unused include/types/client.h
5071 - [CLEANUP] remove many #include <types/xxx> from C files
5072 - [CLEANUP] remove dependency on obsolete INTBITS macro
5073 - [DOC] document the new "tcp-request" keyword and associated ACLs
5074 - [MINOR] acl: add REQ_CONTENT to the list of default acls
5075 - [MEDIUM] acl: permit fetch() functions to set the result themselves
5076 - [MEDIUM] acl: get rid of dummy values in always_true/always_false
5077 - [MINOR] acl: add the "wait_end" acl verb
5078 - [MEDIUM] acl: enforce ACL type checking
5079 - [MEDIUM] acl: set types on all currently known ACL verbs
5080 - [MEDIUM] acl: when possible, report the name and requirements of ACLs in warnings
5081 - [CLEANUP] remove 65 useless NULL checks before free
5082 - [MEDIUM] memory: update pool_free2() to support NULL pointers
5083 - [MEDIUM] buffers: ensure buffer_shut* are properly called upon shutdowns
5084 - [MEDIUM] process_srv: rely on buffer flags for client shutdown
5085 - [MEDIUM] process_srv: don't rely at all on client state
5086 - [MEDIUM] process_cli: don't rely at all on server state
5087 - [BUG] fix segfault with url_param + check_post
5088 - [BUG] server timeout was not considered in some circumstances
5089 - [BUG] client timeout incorrectly rearmed while waiting for server
5090 - [MAJOR] kill CL_STINSPECT and CL_STHEADERS (step 1)
5091 - [MAJOR] get rid of SV_STANALYZE (step 2)
5092 - [MEDIUM] simplify and centralize request timeout cancellation and request forwarding
5093 - [MAJOR] completely separate HTTP and TCP states on the request path
5094 - [BUG] fix recently introduced loop when client closes early
5095 - [MAJOR] get rid of the SV_STHEADERS state
5096 - [MAJOR] better separation of response processing and server state
5097 - [MAJOR] clearly separate HTTP response processing from TCP server state
5098 - [MEDIUM] remove unused references to {CL|SV}_STSHUT*
5099 - [MINOR] term_trace: add better instrumentations to trace the code
5100 - [BUG] ev_sepoll: closed file descriptors could persist in the spec list
5101 - [BUG] process_response must not enable the read FD
5102 - [BUG] buffers: remove BF_MAY_CONNECT and fix forwarding issue
5103 - [BUG] process_response: do not touch srv_state
5104 - [BUG] maintain_proxies must not disable backends
5105 - [CLEANUP] get rid of BF_SHUT*_PENDING
5106 - [MEDIUM] buffers: add BF_EMPTY and BF_FULL to remove dependency on req/rep->l
5107 - [MAJOR] process_session: rely only on buffer flags
5108 - [MEDIUM] use buffer->wex instead of buffer->cex for connect timeout
5109 - [MEDIUM] centralize buffer timeout checks at the top of process_session
5110 - [MINOR] ensure the termination flags are set by process_xxx
5111 - [MEDIUM] session: move the analysis bit field to the buffer
5112 - [OPTIM] process_cli/process_srv: reduce the number of tests
5113 - [BUG] regparm is broken on gcc < 3
5114 - [BUILD] fix warning in proto_tcp.c with gcc >= 4
5115 - [MEDIUM] merge inspect_exp and txn->exp into request buffer
5116 - [BUG] process_cli/process_srv: don't call shutdown when already done
5117 - [BUG] process_request: HTTP body analysis must return zero if missing data
5118 - [TESTS] test-fsm: 22 regression tests for state machines
5119 - [BUG] Fix empty X-Forwarded-For header name when set in defaults section
5120 - [BUG] fix harmless but wrong fd insertion sequence
5121 - [MEDIUM] make it possible for analysers to follow the whole session
5122 - [MAJOR] rework of the server FSM
5123 - [OPTIM] remove useless fd_set(read) upon shutdown(write)
5124 - [MEDIUM] massive cleanup of process_srv()
5125 - [MEDIUM] second level of code cleanup for process_srv_data
5126 - [MEDIUM] third cleanup and optimization of process_srv_data()
5127 - [MEDIUM] process_srv_data: ensure that we always correctly re-arm timeouts
5128 - [MEDIUM] stream_sock_process_data moved to stream_sock.c
5129 - [MAJOR] make the client side use stream_sock_process_data()
5130 - [MEDIUM] split stream_sock_process_data
5131 - [OPTIM] stream_sock_read must check for null-reads more often
5132 - [MINOR] only call flow analysers when their read side is connected.
5133 - [MEDIUM] reintroduce BF_HIJACK with produce_content
5134 - [MINOR] re-arrange buffer flags and rename some of them
5135 - [MINOR] do not check for BF_SHUTR when computing write timeout
5136 - [OPTIM] ev_sepoll: detect newly created FDs and check them once
5137 - [OPTIM] reduce the number of calls to task_wakeup()
5138 - [OPTIM] force inlining of large functions with gcc >= 3
5139 - [MEDIUM] indicate a reason for a task wakeup
5140 - [MINOR] change type of fdtab[]->owner to void*
5141 - [MAJOR] make stream sockets aware of the stream interface
5142 - [MEDIUM] stream interface: add the ->shutw method as well as in and out buffers
5143 - [MEDIUM] buffers: add BF_READ_ATTACHED and BF_ANA_TIMEOUT
5144 - [MEDIUM] process_session: make use of the new buffer flags
5145 - [CLEANUP] process_session: move debug outputs out of the critical loop
5146 - [MEDIUM] move QUEUE and TAR timers to stream interfaces
5147 - [OPTIM] add compiler hints in tick_is_expired()
5148 - [MINOR] add buffer_check_timeouts() to check what timeouts have fired.
5149 - [MEDIUM] use buffer_check_timeouts instead of stream_sock_check_timeouts()
5150 - [MINOR] add an expiration flag to the stream_sock_interface
5151 - [MAJOR] migrate the connection logic to stream interface
5152 - [MAJOR] add a connection error state to the stream_interface
5153 - [MEDIUM] add the SN_CURR_SESS flag to the session to track open sessions
5154 - [MEDIUM] continue layering cleanups.
5155 - [MEDIUM] stream_interface: added a DISconnected state between CON/EST and CLO
5156 - [MEDIUM] remove stream_sock_update_data()
5157 - [MINOR] maintain a global session list in order to ease debugging
5158 - [BUG] shutw must imply close during a connect
5159 - [MEDIUM] process shutw during connection attempt
5160 - [MEDIUM] make the stream interface control the SHUT{R,W} bits
5161 - [MAJOR] complete layer4/7 separation
5162 - [CLEANUP] move the session-related functions to session.c
5163 - [MINOR] call session->do_log() for logging
5164 - [MINOR] replace the ambiguous client_return function by stream_int_return
5165 - [MINOR] replace client_retnclose() with stream_int_retnclose()
5166 - [MINOR] replace srv_close_with_err() with http_server_error()
5167 - [MEDIUM] make the http server error function a pointer in the session
5168 - [CLEANUP] session.c: removed some migration left-overs in sess_establish()
5169 - [MINOR] stream_sock_data_finish() should not expose fd
5170 - [MEDIUM] extract TCP request processing from HTTP
5171 - [MEDIUM] extract the HTTP tarpit code from process_request().
5172 - [MEDIUM] move the HTTP request body analyser out of process_request().
5173 - [MEDIUM] rename process_request to http_process_request
5174 - [BUG] fix forgotten server session counter
5175 - [MINOR] declare process_session in session.h, not proto_http.h
5176 - [MEDIUM] first pass of lifting to proto_uxst.c:uxst_event_accept()
5177 - [MINOR] add an analyser code for UNIX stats request
5178 - [MINOR] pre-set analyser flags on the listener at registration time
5179 - [BUG] do not forward close from cons to prod with analysers
5180 - [MEDIUM] ensure that sock->shutw() also closes read for init states
5181 - [MINOR] add an analyser state in struct session
5182 - [MAJOR] make unix sockets work again with stats
5183 - [MEDIUM] remove cli_fd, srv_fd, cli_state and srv_state from the session
5184 - [MINOR] move the listener reference from fd to session
5185 - [MEDIUM] reference the current hijack function in the buffer itself
5186 - [MINOR] slightly rebalance stats_dump_{raw,http}
5187 - [MINOR] add a new back-reference type : struct bref
5188 - [MINOR] add back-references to sessions for later use by a dumper.
5189 - [MEDIUM] add support for "show sess" in unix stats socket
5190 - [BUG] do not release the connection slot during a retry
5191 - [BUG] dynamic connection throttling could return a max of zero conns
5192 - [BUG] do not try to pause backends during reload
5193 - [BUG] ensure that listeners from disabled proxies are correctly unbound.
5194 - [BUG] acl-related keywords are not allowed in defaults sections
5195 - [BUG] cookie capture is declared in the frontend but checked on the backend
5196 - [BUG] critical errors should be reported even in daemon mode
5197 - [MINOR] redirect: add support for the "drop-query" option
5198 - [MINOR] redirect: add support for "set-cookie" and "clear-cookie"
5199 - [MINOR] redirect: in prefix mode a "/" means not to change the URI
5200 - [BUG] do not dequeue requests on a dead server
5201 - [BUG] do not dequeue the backend's pending connections on a dead server
5202 - [MINOR] stats: indicate if a task is running in "show sess"
5203 - [BUG] check timeout must not be changed if timeout.check is not set
5204 - [BUG] "option transparent" is for backend, not frontend !
5205 - [MINOR] transfer errors were not reported anymore in data phase
5206 - [MEDIUM] add a send limit to a buffer
5207 - [MEDIUM] don't report buffer timeout when there is I/O activity
5208 - [MEDIUM] indicate when we don't care about read timeout
5209 - [MINOR] add flags to indicate when a stream interface is waiting for space/data
5210 - [MEDIUM] enable inter-stream_interface wakeup calls
5211 - [MAJOR] implement autonomous inter-socket forwarding
5212 - [MINOR] add the splice_len member to the buffer struct in preparation of splice support
5213 - [MEDIUM] stream_sock: factor out the return path in case of no-writes
5214 - [MEDIUM] i/o: rework ->to_forward and ->send_max
5215 - [OPTIM] stream_sock: do not ask for polling on EAGAIN if we have read
5216 - [OPTIM] buffer: replace rlim by max_len
5217 - [OPTIM] stream_sock: factor out the buffer full handling out of the loop
5218 - [CLEANUP] replace a few occurrences of (flags & X) && !(flags & Y)
5219 - [CLEANUP] stream_sock: move the write-nothing condition out of the loop
5220 - [MEDIUM] split stream_sock_write() into callback and core functions
5221 - [MEDIUM] stream_sock_read: call ->chk_snd whenever there are data pending
5222 - [MINOR] stream_sock: fix a few wrong empty calculations
5223 - [MEDIUM] stream_sock: try to send pending data on chk_snd()
5224 - [MINOR] global.maxpipes: add the ability to reserve file descriptors for pipes
5225 - [MEDIUM] splice: add configuration options and set global.maxpipes
5226 - [MINOR] introduce structures required to support Linux kernel splicing
5227 - [MEDIUM] add definitions for Linux kernel splicing
5228 - [MAJOR] complete support for linux 2.6 kernel splicing
5229 - [BUG] reserve some pipes for backends with splice enabled
5230 - [MEDIUM] splice: add hints to support older buggy kernels
5231 - [MEDIUM] introduce pipe pools
5232 - [MEDIUM] splice: make use of pipe pools
5233 - [STATS] report pipe usage in the statistics
5234 - [OPTIM] make global.maxpipes default to global.maxconn/4 when not specified
5235 - [BUILD] fix snapshot date extraction with negative timezones
5236 - [MEDIUM] move global tuning options to the global structure
5237 - [MEDIUM] splice: add the global "nosplice" option
5238 - [BUILD] add USE_LINUX_SPLICE to enable LINUX_SPLICE on linux 2.6
5239 - [BUG] we must not exit if protocol binding only returns a warning
5240 - [MINOR] add support for bind interface name
5241 - [BUG] inform the user when root is expected but not set
5242 - [MEDIUM] add support for source interface binding
5243 - [MEDIUM] add support for source interface binding at the server level
5244 - [MEDIUM] implement bind-process to limit service presence by process
5245 - [DOC] document maxpipes, nosplice, option splice-{auto,request,response}
5246 - [DOC] filled the logging section of the configuration manual
5247 - [DOC] document HTTP status codes
5248 - [DOC] document a few missing info about errorfile
5249 - [BUG] fix random memory corruption using "show sess"
5250 - [BUG] fix unix socket processing of interrupted output
5251 - [DOC] add diagrams of queuing and future ACL design
5252 - [BUILD] proto_http did not build on gcc-2.95
5253 - [BUG] the "source" keyword must first clear optional settings
5254 - [BUG] global.tune.maxaccept must be limited even in mono-process mode
5255 - [MINOR] ensure that http_msg_analyzer updates pointer to invalid char
5256 - [MEDIUM] store a complete dump of request and response errors in proxies
5257 - [MEDIUM] implement error dump on unix socket with "show errors"
5258 - [DOC] document "show errors"
5259 - [MINOR] errors dump must use user-visible date, not internal date.
5260 - [MINOR] time: add __usec_to_1024th to convert usecs to 1024th of second
5261 - [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second.
5262 - [MEDIUM] measure and report session rate on frontend, backends and servers
5263 - [BUG] the "connslots" keyword was matched as "connlots"
5264 - [MINOR] acl: add 2 new verbs: fe_sess_rate and be_sess_rate
5265 - [MEDIUM] implement "rate-limit sessions" for the frontend
5266 - [BUG] interface binding: length must include the trailing zero
5267 - [BUG] typo in timeout error reporting : report *res and not *err
5268 - [OPTIM] maintain_proxies: only wake up when the frontend will be ready
5269 - [OPTIM] rate-limit: cleaner behaviour on low rates and reduce consumption
5270 - [BUG] switch server-side stream interface to close in case of abort
5271 - [CLEANUP] remove last references to term_trace
5272 - [OPTIM] freq_ctr: do not rotate the counters when reading
5273 - [BUG] disable any analysers for monitoring requests
5274 - [BUG] rate-limit in defaults section was ignored
5275 - [BUG] task: fix handling of duplicate keys
5276 - [OPTIM] task: don't unlink a task from a wait queue when waking it up
5277 - [OPTIM] displace tasks in the wait queue only if absolutely needed
5278 - [MEDIUM] minor update to the task api: let the scheduler queue itself
5279 - [BUG] event_accept() must always wake the task up, even in health mode
5280 - [CLEANUP] task: distinguish between clock ticks and timers
5281 - [OPTIM] task: reduce the number of calls to task_queue()
5282 - [OPTIM] do not re-check req buffer when only response has changed
5283 - [CLEANUP] don't enable kernel splicing when socket is closed
5284 - [CLEANUP] buffer_flush() was misleading, rename it as buffer_erase
5285 - [MINOR] buffers: implement buffer_flush()
5286 - [MEDIUM] rearrange forwarding condition to enable splice during analysis
5287 - [BUILD] build fixes for Solaris
5288 - [BUILD] proto_http did not build on gcc-2.95 (again)
5289 - [CONTRIB] halog: fast log parser for haproxy
5290 - [CONTRIB] halog: faster fgets() and add support for percentile reporting
5291
Willy Tarreau7b4c5ae2008-04-19 21:06:14 +020052922008/04/19 : 1.3.15
5293 - [BUILD] Added support for 'make install'
5294 - [BUILD] Added 'install-man' make target for installing the man page
5295 - [BUILD] Added 'install-bin' make target
5296 - [BUILD] Added 'install-doc' make target
5297 - [BUILD] Removed "/" after '$(DESTDIR)' in install targets
5298 - [BUILD] Changed 'install' target to install the binaries first
5299 - [BUILD] Replace hardcoded 'LD = gcc' with 'LD = $(CC)'
5300 - [MEDIUM]: Inversion for options
5301 - [MEDIUM]: Count retries and redispatches also for servers, fix redistribute_pending, extend logs, %d->%u cleanup
5302 - [BUG]: Restore clearing t->logs.bytes
5303 - [MEDIUM]: rework checks handling
5304 - [DOC] Update a "contrib" file with a hint about a scheme used for formathing subjects
5305 - [MEDIUM] Implement "track [<backend>/]<server>"
5306 - [MINOR] Implement persistent id for proxies and servers
5307 - [BUG] Don't increment server connections too much + fix retries
5308 - [MEDIUM]: Prevent redispatcher from selecting the same server, version #3
5309 - [MAJOR] proto_uxst rework -> SNMP support
5310 - [BUG] appsession lookup in URL does not work
5311 - [BUG] transparent proxy address was ignored in backend
5312 - [BUG] hot reconfiguration failed because of a wrong error check
5313 - [DOC] big update to the configuration manual
5314 - [DOC] large update to the configuration manual
5315 - [DOC] document more options
5316 - [BUILD] major rework of the GNU Makefile
5317 - [STATS] add support for "show info" on the unix socket
5318 - [DOC] document options forwardfor to logasap
5319 - [MINOR] add support for the "backlog" parameter
5320 - [OPTIM] introduce global parameter "tune.maxaccept"
5321 - [MEDIUM] introduce "timeout http-request" in frontends
5322 - [MINOR] tarpit timeout is also allowed in backends
5323 - [BUG] increment server connections for each connect()
5324 - [MEDIUM] add a turn-around state of one second after a connection failure
5325 - [BUG] fix typo in redispatched connection
5326 - [DOC] document options nolinger to ssl-hello-chk
5327 - [DOC] added documentation for "option tcplog" to "use_backend"
5328 - [BUG] connect_server: server might not exist when sending error report
5329 - [MEDIUM] support fully transparent proxy on Linux (USE_LINUX_TPROXY)
5330 - [MEDIUM] add non-local bind to connect() on Linux
5331 - [MINOR] add transparent proxy support for balabit's Tproxy v4
5332 - [BUG] use backend's source and not server's source with tproxy
5333 - [BUG] fix overlapping server flags
5334 - [MEDIUM] fix server health checks source address selection
5335 - [BUG] build failed on CONFIG_HAP_LINUX_TPROXY without CONFIG_HAP_CTTPROXY
5336 - [DOC] added "server", "source" and "stats" keywords
5337 - [DOC] all server parameters have been documented
5338 - [DOC] document all req* and rsp* keywords.
5339 - [DOC] added documentation about HTTP header manipulations
5340 - [BUG] log response byte count, not request
5341 - [BUILD] code did not build in full debug mode
5342 - [BUG] fix truncated responses with sepoll
5343 - [MINOR] use s->frt_addr as the server's address in transparent proxy
5344 - [MINOR] fix configuration hint about timeouts
5345 - [DOC] minor cleanup of the doc and notice to contributors
5346 - [MINOR] report correct section type for unknown keywords.
5347 - [BUILD] update MacOS Makefile to build on newer versions
5348 - [DOC] fix erroneous "useallbackups" option in the doc
5349 - [DOC] applied small fixes from early readers
5350 - [MINOR] add configuration support for "redir" server keyword
5351 - [MEDIUM] completely implement the server redirection method
5352 - [TESTS] add a test case for the server redirection mechanism
5353 - [DOC] add a configuration entry for "server ... redir <prefix>"
5354 - [BUILD] backend.c and checks.c did not build without tproxy !
5355 - Revert "[BUILD] backend.c and checks.c did not build without tproxy !"
5356 - [BUILD] backend.c and checks.c did not build without tproxy !
5357 - [OPTIM] used unsigned ints for HTTP state and message offsets
5358 - [OPTIM] GCC4's builtin_expect() is suboptimal
5359 - [BUG] failed conns were sometimes incremented in the frontend!
5360 - [BUG] timeout.check was not pre-set to eternity
5361 - [TESTS] add test-pollers.cfg to easily report pollers in use
5362 - [BUG] do not apply timeout.connect in checks if unset
5363 - [BUILD] ensure that makefile understands USE_DLMALLOC=1
5364 - [MINOR] silent gcc for a wrong warning
5365 - [CLEANUP] update .gitignore to ignore more temporary files
5366 - [CLEANUP] report dlmalloc's source path only if explictly specified
5367 - [BUG] str2sun could leak a small buffer in case of error during parsing
5368 - [BUG] option allbackups was not working anymore in roundrobin mode
5369 - [MAJOR] implementation of the "leastconn" load balancing algorithm
5370 - [BUILD] ensure that users don't build without setting the target anymore.
5371 - [DOC] document the leastconn LB algo
5372 - [MEDIUM] fix stats socket limitation to 16 kB
5373 - [DOC] fix unescaped space in httpchk example.
5374 - [BUG] fix double-decrement of server connections
5375 - [TESTS] add a test case for port mapping
5376 - [TESTS] add a benchmark for integer hashing
5377 - [TESTS] add new methods in ip-hash test file
5378 - [MAJOR] implement parameter hashing for POST requests
5379
Willy Tarreaue5b77e82007-12-06 01:25:44 +010053802007/12/06 : 1.3.14
5381 - New option http_proxy (Alexandre Cassen)
5382 - add support for "maxqueue" to limit server queue overload (Elijah Epifanov)
5383 - Check for duplicated conflicting proxies (Krzysztof Oledzki)
5384 - stats: report server and backend cumulated downtime (Krzysztof Oledzki)
5385 - use backends only with use_backend directive (Krzysztof Oledzki)
5386 - Handle long lines properly (Krzysztof Oledzki)
5387 - Implement and use generic findproxy and relax duplicated proxy check (Krzysztof Oledzki)
5388 - continous statistics (Krzysztof Oledzki)
5389 - add support for logging via a UNIX socket (Robert Tsai)
5390 - fix error checking in strl2ic/strl2uic()
5391 - fix calls to localtime()
5392 - provide easier-to-use ultoa_* functions
5393 - provide easy-to-use limit_r and LIM2A* macros
5394 - add a simple test for the status page
5395 - move error codes to common/errors.h
5396 - silent warning about LIST_* being redefined on OpenBSD
5397 - add socket address length to the protocols
5398 - group PR_O_BALANCE_* bits into a checkable value
5399 - externalize the "balance" option parser to backend.c
5400 - introduce the "url_param" balance method
5401 - make default_backend work in TCP mode too
5402 - disable warning about localtime_r on Solaris
5403 - adjust error messages about conflicting proxies
5404 - avoid calling some layer7 functions if not needed
5405 - simplify error path in event_accept()
5406 - add an options field to the listeners
5407 - added a new state to listeners
5408 - unbind_listener() must use fd_delete() and not close()
5409 - add a generic unbind_listener() primitive
5410 - add a generic delete_listener() primitive
5411 - add a generic unbind_all_listeners() primitive
5412 - create proto_tcp and move initialization of proxy listeners
5413 - stats: report numerical process ID, proxy ID and server ID
5414 - relative_pid was not initialized
5415 - missing header names in raw stats output
5416 - fix missing parenthesis in check_response_for_cacheability
5417 - small optimization on session_process_counters()
5418 - merge ebtree version 3.0
5419 - make ebtree headers multiple-include compatible
5420 - ebtree: include config.h for REGPRM*
5421 - differentiate between generic LB params and map-specific ones
5422 - add a weight divisor to the struct proxy
5423 - implement the Fast Weighted Round Robin (FWRR) algo
5424 - include filltab25.c to experiment on FWRR for dynamic weights
5425 - merge test-fwrr.cfg to validate dynamic weights
5426 - move the load balancing algorithm to be->lbprm.algo
5427 - change server check result to a bit field
5428 - implement "http-check disable-on-404" for graceful shutdown
5429 - secure the calling conditions of ->set_server_status_{up,down}
5430 - report disabled servers as "NOLB" when they are still UP
5431 - document the "http-check disable-on-404" option
5432 - http-check disable-on-404 is not limited to HTTP mode
5433 - add a test file for disable-on-404
5434 - use distinct bits per load-balancing algorithm type
5435 - implement the slowstart parameter for servers
5436 - document the server's slowstart parameter
5437 - stats: report the server warm up status in a "throttle" column
5438 - fix 2 minor issues on AIX
5439 - add the "nbsrv" ACL verb
5440 - add the "fail" condition to monitor requests
5441 - remove a warning from gcc due to htons() in standard.c
5442 - fwrr: ensure that we never overflow in placements
5443 - store the build options to report with -vv
5444 - fix the status return of the init script (R.I. Pienaar)
5445 - stats: real time monitoring script for unix socket (Prizee)
5446 - document "nbsrv" and "monitor fail"
5447 - restrict the set of allowed characters for identifiers
5448 - implement a time parsing function
5449 - add support for time units in the configuration
5450 - add a bit of documentation about timers
5451 - introduce separation between contimeout, and tarpit + queue
5452 - introduce the "timeout" keyword
5453 - grouped all timeouts in one structure
5454 - slowstart is in ms, not seconds
5455 - slowstart: ensure we don't start with a null weight
5456 - report the number of times each server was selected
5457 - fix build on AIX due to recent log changes
5458 - fix build on Solaris due to recent log changes
5459
Willy Tarreaue855f422007-10-18 22:38:22 +020054602007/10/18 : 1.3.13
5461 - replace the code under O'Reilly license (Arnaud Cornet)
5462 - add a small man page (Arnaud Cornet)
5463 - stats: report haproxy's version by default (Krzysztof Oledzki)
5464 - stats: count server retries and redispatches (Krzysztof Oledzki)
5465 - core: added easy support for Doug Lea's malloc (dlmalloc)
5466 - core: fade out memory usage when stopping proxies
5467 - core: moved the sockaddr pointer to the fdtab structure
5468 - core: add generic protocol support
5469 - core: implement client-side support for PF_UNIX sockets
5470 - stats: implement the CSV output
5471 - stats: add a link to the CSV export HTML page
5472 - stats: implement the statistics output on a unix socket
5473 - config: introduce the "stats" keyword in global section
5474 - build: centralize version and date into one file for each
5475 - tests: added a new hash algorithm
5476
54772007/10/18 : 1.3.12.3
5478 - add the "nolinger" option to disable data lingering (Alexandre Cassen)
5479 - fix double-free during clean exit (Krzysztof Oledzki)
5480 - prevent the system from sending an RST when closing health-checks
5481 (Krzysztof Oledzki)
5482 - do not add a cache-control header when on non-cacheable responses
5483 (Krzysztof Oledzki)
5484 - spread health checks even more (Krzysztof Oledzki)
5485 - stats: scope "." must match the backend and not the frontend
5486 - fixed call to chroot() during startup
5487 - fix wrong timeout computation in event_accept()
5488 - remove condition for exit() under fork() failure
5489
54902007/09/20 : 1.3.12.2
5491 - fix configuration sanity checks for TCP listeners
5492 - set the log socket receive window to zero bytes
5493 - pre-initialize timeouts to infinity, not zero
5494 - fix the SIGHUP message not to alert on server-less proxies
5495 - timeouts and retries could be ignored when switching backend
5496 - added a file to check that "retries" works.
5497 - O'Reilly has clarified its license
5498
54992007/09/05 : 1.3.12.1
5500 - spec I/O: fix allocations of spec entries for an FD
5501 - ensure we never overflow in chunk_printf()
5502 - improve behaviour with large number of servers per proxy
5503 - add support for "stats refresh <interval>"
5504 - stats page: added links for 'refresh' and 'hide down'
5505 - fix backend's weight in the stats page.
5506 - the "stats" keyword is not allowed in a pure frontend.
5507 - provide a test configuration file for stats and checks
5508
Willy Tarreaub21152b2007-06-17 23:41:40 +020055092007/06/17 : 1.3.12
5510 - fix segfault at exit when using captures
5511 - bug: negation in ACL conds was not cleared between terms
5512 - errorfile: use a local file to feed error messages
5513 - acl: support '-i' to ignore case when matching
5514 - acl: smarter integer comparison with operators eq,lt,gt,le,ge
5515 - acl: support maching on 'path' component
5516 - acl: implement matching on header values
5517 - acl: distinguish between request and response headers
5518 - acl: permit to return any header when no name specified
5519 - acl: provide default ACLs
5520 - added the 'use_backend' keyword for full content-switching
5521 - acl: specify the direction during fetches
5522 - acl: provide the argument length for fetch functions
5523 - acl: provide a reference to the expr to fetch()
5524 - improve memory freeing upon exit
5525 - str2net() must not change the const char *
5526 - shut warnings 'is*' macros from ctype.h on solaris
5527
Willy Tarreaua3503e02007-06-03 17:27:07 +020055282007/06/03 : 1.3.11.4
5529 - do not re-arm read timeout in SHUTR state !
5530 - optimize I/O by detecting system starvation
5531 - the epoll FD must not be shared between processes
5532 - limit the number of events returned by *poll*
5533
Willy Tarreau3c6fc072007-05-14 14:40:25 +020055342007/05/14 : 1.3.11.3
5535 - pre-initialize timeouts with tv_eternity during parsing
5536
Willy Tarreaufc273c22007-05-14 03:42:47 +020055372007/05/14 : 1.3.11.2
5538 - fixed broken health-checks since switch to timeval
5539
Willy Tarreau3c5340c2007-05-14 03:18:43 +020055402007/05/14 : 1.3.11.1
5541 - fixed ev_kqueue which was forgotten during the switch to timeval
5542 - allowed null timeouts for past events in select
5543
Willy Tarreau544eb402007-05-14 02:42:33 +020055442007/05/14 : 1.3.11
5545 - fixed ev_sepoll again by rewriting the state machine
5546 - switched all timeouts to timevals instead of milliseconds
5547 - improved memory management using mempools v2.
5548 - several minor optimizations
5549
Willy Tarreau9ca931f2007-05-10 07:51:17 +020055502007/05/09 : 1.3.10.2
5551 - fixed build on OpenBSD (missing types.h)
5552
Willy Tarreau13398d32007-05-09 22:58:28 +020055532007/05/09 : 1.3.10.1
5554 - fixed sepoll transition matrix (two states were missing)
5555
Willy Tarreau61beedf2007-05-09 01:44:58 +020055562007/05/08 : 1.3.10
5557 - several fixes in ev_sepoll
5558 - fixed some expiration dates on some tasks
5559 - fixed a bug in connection establishment detection due to speculative I/O
5560 - fixed rare bug occuring on TCP with early close (reported by Andy Smith)
5561 - implemented URI hashing algorithm (Guillaume Dallaire)
5562 - implemented SMTP health checks (Peter van Dijk)
5563 - replaced the rbtree with ul2tree from old scheduler project
5564 - new framework for generic ACL support
5565 - added the 'acl' and 'block' keywords to the config language
5566 - added several ACL criteria and matches (IP, port, URI, ...)
5567 - cleaned up and better modularization for some time functions
5568 - fixed list macros
5569 - fixed useless memory allocation in str2net()
5570 - store the original destination address in the session
5571
Willy Tarreau6e0433f2007-04-16 01:18:12 +020055722007/04/15 : 1.3.9
5573 - modularized the polling mechanisms and use function pointers instead
5574 of macros at many places
5575 - implemented support for FreeBSD's kqueue() polling mechanism
5576 - fixed a warning on OpenBSD : MIN/MAX redefined
5577 - change socket registration order at startup to accomodate kqueue.
5578 - several makefile cleanups to support old shells
5579 - fix build with limits.h once for all
5580 - ev_epoll: do not rely on fd_sets anymore, use changes stacks instead.
5581 - fdtab now holds the results of polling
5582 - implemented support for speculative I/O processing with epoll()
5583 - remove useless calls to shutdown(SHUT_RD), resulting in small speed boost
5584 - auto-registering of pollers at load time
5585
Willy Tarreau42c76592007-04-03 20:30:13 +020055862007/04/03 : 1.3.8.2
5587 - rewriting either the status line or request line could crash the
5588 process due to a pointer which ought to be reset before parsing.
5589 - rewriting the status line in the response did not work, it caused
5590 a 502 Bad Gateway due to an erroneous state during parsing
5591
Willy Tarreauef6d7612007-04-01 11:06:22 +020055922007/04/01 : 1.3.8.1
5593 - fix reqadd when no option httpclose is used.
5594 - removed now unused fiprm and beprm from proxies
5595 - split logs into two versions : TCP and HTTP
5596 - added some docs about http headers storage and acls
5597 - added a VIM script for syntax color highlighting (Bruno Michel)
5598
Willy Tarreaud661cc02007-03-26 00:24:56 +020055992007/03/25 : 1.3.8
5600 - fixed several bugs which might have caused a crash with bad configs
5601 - several optimizations in header processing
5602 - many progresses towards transaction-based processing
5603 - option forwardfor may be used in frontends
5604 - completed HTTP response processing
5605 - some code refactoring between request and response processing
5606 - new HTTP header manipulation functions
5607 - optimizations on the recv() patch to reduce CPU usage under very
5608 high data rates.
5609 - more user-friendly help about the 'usesrc' keyword (CTTPROXY)
5610 - username/groupname support from Marcus Rueckert
5611 - added the "except" keyword to the "forwardfor" option (Bryan German)
5612 - support for health-checks on other addresses (Fabrice Dulaunoy)
5613 - makefile for MacOS 10.4 / Darwin (Dan Zinngrabe)
5614 - do not insert "Connection: close" in HTTP/1.0 messages
5615
Willy Tarreau9cabf702007-01-26 23:49:01 +010056162007/01/26 : 1.3.7
5617 - fix critical bug introduced with 1.3.6 : an empty request header
5618 may lead to a crash due to missing pointer assignment
5619 - hdr_idx might be left uninitialized in debug mode
5620 - fixed build on FreeBSD due to missing fd_set declaration
5621
Willy Tarreaue7a24382007-01-22 08:57:44 +010056222007/01/22 : 1.3.6.1
5623 - change in the header chaining broke cookies and authentication
5624
Willy Tarreau49e1ee82007-01-22 00:56:46 +010056252007/01/22 : 1.3.6
5626 - stats now support the HEAD method too
5627 - extracted http request from the session
5628 - huge rework of the HTTP parser which is now a 28-state FSM.
5629 - linux-style likely/unlikely macros for optimization hints
5630 - do not create a server socket when there's no server
5631 - imported lots of docs
5632
Willy Tarreau5871f8e2007-01-07 02:47:01 +010056332007/01/07 : 1.3.5
5634 - stats: swap color sets for active and backup servers
5635 - try to guess server check port when unset
5636 - added complete support and doc for TCP Splicing
5637 - replace the wait-queue linked list with an rbtree.
5638 - a few bugfixes and cleanups
5639
Willy Tarreau85270da2007-01-02 00:59:39 +010056402007/01/02 : 1.3.4
5641 - support for cttproxy on the server side to present the client
5642 address to the server.
5643 - added support for SO_REUSEPORT on Linux (needs kernel patch)
5644 - new RFC2616-compliant HTTP request parser with header indexing
5645 - split proxies in frontends, rulesets and backends
5646 - implemented the 'req[i]setbe' to select a backend depending
5647 on the contents
5648 - added the 'default_backend' keyword to select a default BE.
5649 - new stats page featuring FEs and BEs + bytes in both dirs
5650 - improved log format to indicate the backend and the time in ms.
5651 - lots of cleanups
5652
Willy Tarreau9c9fea42006-10-16 00:03:35 +020056532006/10/15 : 1.3.3
5654 - fix broken redispatch option in case the connection has already
5655 been marked "in progress" (ie: nearly always).
5656 - support regparm on x86 to speed up some often called functions
5657 - removed a few useless calls to gettimeofday() in log functions.
5658 - lots of 'const char*' cleanups
5659 - turn every FD_* into functions which are faster on recent CPUs
5660
Willy Tarreau690f9aa2006-09-03 11:23:06 +020056612006/09/03 : 1.3.2
5662 - started the changes towards I/O completion callbacks. stream_sock* have
5663 replaced event_*.
5664 - added the new "reqtarpit" and "reqitarpit" protection features
5665
Willy Tarreau8f2b8552006-07-09 17:11:39 +020056662006/07/09 : 1.3.1 (1.2.15)
5667 - now, haproxy warns about missing timeout during startup to try to
5668 eliminate all those buggy configurations.
5669 - added "Content-Type: text/html" in responses wherever appropriate, as
5670 suggested by Cameron Simpson.
5671 - implemented "option ssl-hello-chk" to use SSLv3 CLIENT HELLO messages to
5672 test server's health
5673 - implemented "monitor-uri" so that haproxy can reply to a specific URI with
5674 an "HTTP/1.0 200 OK" response. This is useful to validate multiple proxies
5675 at once.
5676
Willy Tarreaub9e98b62006-07-03 10:32:46 +020056772006/06/29 : 1.3.0
5678 - exploded the whole file into multiple .c and .h. No functionnal
Willy Tarreau8f2b8552006-07-09 17:11:39 +02005679 difference is expected at all.
5680 - fixed a bug by which neither stats nor error messages could be returned if
5681 'clitimeout' was missing.
Willy Tarreaub9e98b62006-07-03 10:32:46 +02005682
willy tarreau7e6328d2006-05-21 23:26:20 +020056832006/05/21 : 1.2.14
5684 - new HTML status report with the 'stats' keyword.
5685 - added the 'abortonclose' option to better resist traffic surges
5686 - implemented dynamic traffic regulation with the 'minconn' option
5687 - show request time on denied requests
5688 - definitely fixed hot reconf on OpenBSD by the use of SO_REUSEPORT
5689 - now a proxy instance is allowed to run without servers, which is
5690 useful to dedicate one instance to stats
5691 - added lots of error counters
5692 - a missing parenthesis preventd matching of cacheable cookies
5693 - a missing parenthesis in poll_loop() might have caused missed events.
5694
Willy TARREAU4404b7e2006-05-14 10:00:09 +020056952006/05/14 : 1.2.13.1
5696 - an uninitialized field in the struct session could cause a crash when
5697 the session was freed. This has been encountered on Solaris only.
5698 - Solaris and OpenBSD no not support shutdown() on listening socket. Let's
5699 be nice to them by performing a soft stop if pause fails.
5700
willy tarreauc3a2e072006-05-13 18:51:38 +020057012006/05/13 : 1.2.13
5702 - 'maxconn' server parameter to do per-server session limitation
5703 - queueing to support non-blocking session limitation
5704 - fixed removal of cookies for cookie-less servers such as backup servers
5705 - two separate wait queues for expirable and non-expirable tasks provide
5706 better performance with lots of sessions.
5707 - some code cleanups and performance improvements
5708 - made state dumps a bit more verbose
5709 - fixed missing checks for NULL srv in dispatch mode
5710 - load balancing on backup servers was not possible in source hash mode.
5711 - two session flags shared the same bit, but fortunately they were not
5712 compatible.
5713
willy tarreauc0d4bbd2006-04-15 21:47:50 +020057142006/04/15 : 1.2.12
5715 Very few changes preparing for more important changes to support per-server
5716 session limitations and queueing :
5717 - ignore leading empty lines in HTTP requests as suggested by RFC2616.
5718 - added the 'weight' parameter to the servers, limited to 1..256. It applies
5719 to roundrobin and source hash.
5720 - the optional '-s' option could clobber '-st' and '-sf' if compiled in.
5721
willy tarreaue0dd2692006-03-30 16:27:34 +020057222006/03/30 : 1.2.11.1
5723 - under some conditions, it might have been possible that when the
5724 last dead server became available, it would not have been used
5725 till another one would have changed state. Could not be reproduced
5726 at all, however seems possible from the code.
5727
willy tarreaud2058dc2006-03-25 20:35:41 +010057282006/03/25 : 1.2.11
5729 - added the '-db' command-line option to disable backgrounding.
5730 - added the -sf/-st command-line arguments which are used to specify
5731 a list of pids to send a FINISH or TERMINATE signal upon startup.
5732 They will also be asked to release their port if a bind fails.
5733 - reworked the startup mechanism to allow the sending of a signal to a list
5734 of old pids if a socket cannot be bound, with a retry for a limited amount
5735 of time (1 second by default).
5736 - added the ability to enforce limits on memory usage.
5737 - added the 'source' load-balancing algorithm which uses the source IP(v4|v6)
5738 - re-architectured the server round-robin mechanism to ease integration of
5739 other algorithms. It now relies on the number of active and backup servers.
5740 - added a counter for the number of active and backup servers, and report
5741 these numbers upon SIGHUP or state change.
5742
willy tarreaubfad5742006-03-23 14:19:11 +010057432006/03/23 : 1.2.10.1
5744 - while fixing the backup server round-robin "feature", a new bug was
5745 introduced which could miss some backup servers.
5746 - the displayed proxy name was wrong when dumping upon SIGHUP.
5747
willy tarreauaaff30e2006-03-19 21:30:41 +010057482006/03/19 : 1.2.10
5749 - assert.h is needed when DEBUG is defined.
5750 - ENORMOUS long standing bug affecting the epoll polling system :
5751 event_data is a union, not a structure !
5752 - Make fd management more robust and easier to debug. Also some
5753 micro-optimisations.
5754 - Limit the number of consecutive accept() in multi-process mode.
5755 This produces a more evenly distributed load across the processes and
5756 slightly improves performance by reducing bottlenecks.
5757 - Make health-checks be more regular, and faster to retry after a timeout.
5758 - Fixed some messages to ease parsing of alerts.
5759 - provided a patch to enable epoll on RHEL3 kernels.
5760 - Separated OpenBSD build from the main Makefile into a new one.
5761
willy tarreau50be0172006-03-15 19:41:19 +010057622006/03/15 : 1.2.9
5763 - haproxy could not be stopped after being paused, it had to be woken up
5764 first. This has been fixed.
5765 - the 'ulimit-n' parameter is now optional and by default computed from
5766 maxconn + the number of listeners + the number of health-checks.
5767 - it is now possible to specify a maximum number of connections at build
5768 time with the SYSTEM_MAXCONN define. The value set in the configuration
5769 file will then be limited to this value, and only the command-line '-n'
5770 option will be able to bypass it. It will prevent against accidental
5771 high memory usage on small systems.
5772 - RFC2616 expects that any HTTP agent accepts multi-line headers. Earlier
5773 versions did not detect a line beginning with a space as the continuation
5774 of previous header. It is now correct.
5775 - health checks sent to servers configured with identical intervals were
5776 sent in perfect synchronisation because the initial time was the same
5777 for all. This could induce high load peaks when fragile servers were
5778 hosting tens of instances for the same application. Now the load is
5779 spread evenly across the smallest interval amongst a listener.
5780 - a new 'forceclose' option was added to make the proxy close the outgoing
5781 channel to the server once it has sent all its headers and the server
5782 starts responding. This helps some servers which don't close upon the
5783 'Connection: close' header. It implies 'option httpclose'.
5784 - there was a bug in the way the backup servers were handled. They were
5785 erroneously load-balanced while the doc said the opposite. Since
5786 load-balanced backup servers is one of the features some people have
5787 been asking for, the problem was fixed to reflect the documented
5788 behaviour and a new option 'allbackups' was introduced to provide the
5789 feature to those who need it.
5790 - a never ending connect() could lead to a fast select() loop if its
5791 timeout times the number of retransmits exceeded the server read or write
5792 timeout, because the later was used to compute select()'s timeout while
5793 the connection timeout was not reached.
5794 - now we initialize the libc's localtime structures very early so that even
5795 under OOM conditions, we can still send dated error messages without
5796 segfaulting.
5797 - the 'daemon' mode implies 'quiet' and disables 'verbose' because file
5798 descriptors are closed.
5799
willy tarreau065f1c02006-01-29 22:10:07 +010058002006/01/29 : 1.2.8
5801 - fixed a nasty bug affecting poll/epoll which could return unmodified data
5802 from the server to the client, and sometimes lead to memory corruption
5803 crashing the process.
5804 - added the new pause/play mechanism with SIGTTOU/SIGTTIN for hot-reconf.
5805
58062005/12/18 : 1.2.7.1
5807 - the "retries" option was ignored because connect() could not return an
5808 error if the connection failed before the timeout.
5809 - TCP health-checks could not detect a connection refused in poll/epoll
5810 mode.
5811
willy tarreaua56eca72005-12-18 01:34:42 +010058122005/11/13 : 1.2.7
willy tarreau77bc8542005-12-18 01:31:43 +01005813 - building with -DUSE_PCRE should include PCRE headers and not regex.h. At
5814 least on Solaris, this caused the libc's regex primitives to be used instead
5815 of PCRE, which caused trouble on group references. This is now fixed.
willy tarreaud0fb4652005-12-18 01:32:04 +01005816 - delayed the quiet mode during startup so that most of the startup alerts can
5817 be displayed even in quiet mode.
5818 - display an alert when a listener has no address, invalid or no port, or when
5819 there are no enabled listeners upon startup.
willy tarreau4373b962005-12-18 01:32:31 +01005820 - added "static-pcre" to the list of supported regex options in the Makefile.
willy tarreau77bc8542005-12-18 01:31:43 +01005821
willy tarreaub952e1d2005-12-18 01:31:20 +010058222005/10/09 : 1.2.7rc (1.1.33rc)
5823 - second batch of socklen_t changes.
5824 - clean-ups from Cameron Simpson.
5825 - because tv_remain() does not know about eternity, using no timeout can
5826 make select() spin around a null time-out. Bug reported by Cameron Simpson.
5827 - client read timeout was not properly set to eternity initialized after an
5828 accept() if it was not set in the config. It remained undetected so long
5829 because eternity is 0 and newly allocated pages are zeroed by the system.
5830 - do not call get_original_dst() when not in transparent mode.
5831 - implemented a workaround for a bug in certain epoll() implementations on
5832 linux-2.4 kernels (epoll-lt <= 0.21).
5833 - implemented TCP keepalive with new options : tcpka, clitcpka, srvtcpka.
5834
willy tarreauc5f73ed2005-12-18 01:26:38 +010058352005/08/07 : 1.2.6
5836 - clean-up patch from Alexander Lazic fixes build on Debian 3.1 (socklen_t).
5837
58382005/07/06 : 1.2.6-pre5 (1.1.32)
willy tarreau0fe39652005-12-18 01:25:24 +01005839 - added the number of active sessions (proxy/process) in the logs
5840
58412005/07/06 : 1.2.6-pre4 (1.1.32-pre4)
willy tarreaub1285d52005-12-18 01:20:14 +01005842 - the time-out fix introduced in 1.1.25 caused a corner case where it was
5843 possible for a client to keep a connection maintained regardless of the
5844 timeout if the server closed the connection during the HEADER phase,
5845 while the client ignored the close request while doing nothing in the
5846 other direction. This has been fixed now by ensuring that read timeouts
5847 are re-armed when switching to any SHUTW state.
5848
58492005/07/05 : 1.2.6-pre3 (1.1.32-pre3)
5850 - enhanced error reporting in the logs. Now the proxy will precisely detect
5851 various error conditions related to the system and/or process limits, and
5852 generate LOG_EMERG logs indicating that a resource has been exhausted.
5853 - logs will contain two new characters for the error cause : 'R' indicates
5854 a resource exhausted, and 'I' indicates an internal error, though this
5855 one should never happen.
5856 - server connection timeouts can now be reported in the logs (sC), as well
5857 as connections refused because of maxconn limitations (PC).
5858
58592005/07/05 : 1.2.6-pre2 (1.1.32-pre2)
5860 - new global configuration keyword "ulimit-n" may be used to raise the FD
5861 limit to usable values.
5862 - a warning is now displayed on startup if the FD limit is lower than the
5863 configured maximum number of sockets.
5864
58652005/07/05 : 1.2.6-pre1 (1.1.32-pre1)
5866 - new configuration keyword "monitor-net" makes it possible to be monitored
5867 by external devices which connect to the proxy without being logged nor
5868 forwarded to any server. Particularly useful on generic TCPv4 relays.
5869
willy tarreau5dffb602005-12-18 01:15:23 +010058702005/06/21 : 1.2.5.2
5871 - fixed build on PPC where chars are unsigned by default
5872
willy tarreau08dedbe2005-12-18 01:13:48 +010058732005/05/02 : 1.2.5.1
5874 - dirty hack to fix a bug introduced with epoll : if we close an FD and
5875 immediately reassign it to another session through a connect(), the
5876 Prev{Read,Write}Events are not updated, which causes trouble detecting
5877 changes, thus leading to many timeouts at high loads.
5878
willy tarreau64a3cc32005-12-18 01:13:11 +010058792005/04/30 : 1.2.5 (1.1.31)
5880 - changed the runtime argument to disable epoll() to '-de'
5881 - changed the runtime argument to disable poll() to '-dp'
5882 - added global options 'nopoll' and 'noepoll' to do the same at the
5883 configuration level.
5884 - added a 'linux24e' target to the Makefile for Linux 2.4 systems patched to
5885 support epoll().
5886 - changed default FD_SETSIZE to 65536 on Solaris (default=1024)
5887 - conditionned signals redirection to #ifdef DEBUG_MEMORY
5888
willy tarreau1c2ad212005-12-18 01:11:29 +010058892005/04/26 : 1.2.5-pre4
5890 - made epoll() support a compile-time option : ENABLE_EPOLL
5891 - provided a very little libc replacement for a possibly missing epoll()
5892 implementation which can be enabled by -DUSE_MY_EPOLL
5893 - implemented the poll() poller, which can be enabled with -DENABLE_POLL.
5894 The equivalent runtime argument becomes '-P'. A few tests show that it
5895 performs like select() with many fds, but slightly slower (certainly
5896 because of the higher amount of memory involved).
5897 - separated the 3 polling methods and the tasks scheduler into 4 distinct
5898 functions which makes the code a lot more modular.
5899 - moved some event tables to private static declarations inside the poller
5900 functions.
5901 - the poller functions can now initialize themselves, run, and cleanup.
5902 - changed the runtime argument to enable epoll() to '-E'.
5903 - removed buggy epoll_ctl() code in the client_retnclose() function. This
5904 function was never meant to remove anything.
5905 - fixed a typo which caused glibc to yell about a double free on exit.
5906 - removed error checking after epoll_ctl(DEL) because we can never know if
5907 the fd is still active or already closed.
5908 - added a few entries in the makefile
5909
willy tarreauad90a0c2005-12-18 01:09:15 +010059102005/04/25 : 1.2.5-pre3
5911 - experimental epoll() support (use temporary '-e' argument)
5912
59132005/04/24 : 1.2.5-pre2
willy tarreauc1f47532005-12-18 01:08:26 +01005914 - implemented the HTTP 303 code for error redirection. This forces the
5915 browser to fetch the given URI with a GET request. The new keyword for
5916 this is 'errorloc303', and a new 'errorloc302' keyword has been created
5917 to make them easily distinguishable.
5918 - added more controls in the parser for valid use of '\x' sequence.
5919 - few fixes from Alex & Klaus
5920
willy tarreauad90a0c2005-12-18 01:09:15 +010059212005/02/17 : 1.2.5-pre1
willy tarreauc1f47532005-12-18 01:08:26 +01005922 - fixed a few errors in the documentation
5923
59242005/02/13
5925 - do not pre-initialize unused file-descriptors before select() anymore.
5926
willy tarreau12350152005-12-18 01:03:27 +010059272005/01/22 : 1.2.4
5928 - merged Alexander Lazic's and Klaus Wagner's work on application
5929 cookie-based persistence. Since this is the first merge, this version is
5930 not intended for general use and reports are more than welcome. Some
5931 documentation is really needed though.
5932
willy tarreau0174f312005-12-18 01:02:42 +010059332005/01/22 : 1.2.3 (1.1.30)
5934 - add an architecture guide to the documentation
5935 - released without any changes
5936
59372004/12/26 : 1.2.3-pre1 (1.1.30-pre1)
5938 - increased default BUFSIZE to 16 kB to accept max headers of 8 kB which is
5939 compatible with Apache. This limit can be configured in the makefile now.
5940 Thanks to Eric Fehr for the checks.
5941 - added a per-server "source" option which now makes it possible to bind to
5942 a different source for each (potentially identical) server.
5943 - changed cookie-based server selection slightly to allow several servers to
5944 share a same cookie, thus making it possible to associate backup servers to
5945 live servers and ease soft-stop for maintenance periods. (Alexander Lazic)
5946 - added the cookie 'prefix' mode which makes it possible to use persistence
5947 with thin clients which support only one cookie. The server name is prefixed
5948 before the application cookie, and restore back.
5949 - fixed the order of servers within an instance to match documentation. Now
5950 the servers are *really* used in the order of their declaration. This is
5951 particularly important when multiple backup servers are in use.
5952
willy tarreau4302f492005-12-18 01:00:37 +010059532004/10/18 : 1.2.2 (1.1.29)
5954 - fixed a bug where a TCP connection would be logged twice if the 'logasap'
5955 option was enabled without the 'tcplog' option.
5956 - encode_string() would use hdr_encode_map instead of the map argument.
5957
59582004/08/10 : (1.1.29-pre2)
5959 - the logged request is now encoded with '#XX' for unprintable characters
5960 - new keywords 'capture request header' and 'capture response header' enable
5961 logging of arbitrary HTTP headers in requests and responses
5962 - removed "-DSOLARIS" after replacing the last inet_aton() with inet_pton()
5963
willy tarreau982249e2005-12-18 00:57:06 +010059642004/06/06 : 1.2.1 (1.1.28)
5965 - added the '-V' command line option to verbosely report errors even though
5966 the -q or 'quiet' options are specified. This is useful with '-c'.
5967 - added a Red Hat init script and a .spec from Simon Matter <simon.matter@invoca.ch>
willy tarreau036e1ce2005-12-17 13:46:33 +01005968
willy tarreau982249e2005-12-18 00:57:06 +010059692004/06/05 :
5970 - added the "logasap" option which produces a log without waiting for the data
5971 to be transferred from the server to the client.
5972 - added the "httpclose" option which removes any "connection:" header and adds
5973 "Connection: close" in both direction.
willy tarreau97f58572005-12-18 00:53:44 +01005974 - added the 'checkcache' option which blocks cacheable responses containing
5975 dangerous headers, such as 'set-cookie'.
willy tarreau982249e2005-12-18 00:57:06 +01005976 - added 'rspdeny' and 'rspideny' to block certain responses to avoid sensible
5977 information leak from servers.
willy tarreau25c4ea52005-12-18 00:49:49 +01005978
59792004/04/18 :
willy tarreaudd07e972005-12-18 00:48:48 +01005980 - send an EMERG log when no server is available for a given proxy
5981 - added the '-c' command line option to syntactically check the
5982 configuration file without starting the service.
5983
willy tarreau8a86dbf2005-12-18 00:45:59 +010059842003/11/09 : 1.2.0
5985 - the same as 1.1.27 + IPv6 support on the client side
5986
willy tarreaufe2c5c12005-12-17 14:14:34 +010059872003/10/27 : 1.1.27
5988 - the configurable HTTP health check introduced in 1.1.23 revealed a shameful
5989 bug : the code still assumed that HTTP requests were the same size as the
5990 original ones (22 bytes), and failed if they were not.
5991 - added support for pidfiles.
5992
willy tarreauc58fc692005-12-17 14:13:08 +010059932003/10/22 : 1.1.26
5994 - the fix introduced in 1.1.25 for client timeouts while waiting for servers
5995 broke almost all compatibility with POST requests, because the proxy
5996 stopped to read anything from the client as soon as it got all of its
5997 headers.
5998
willy tarreauc1cae632005-12-17 14:12:23 +010059992003/10/15 : 1.1.25
6000 - added the 'tcplog' option, which provides enhanced, HTTP-like logs for
6001 generic TCP proxies, or lighter logs for HTTP proxies.
6002 - fixed a time-out condition wrongly reported as client time-out in data
6003 phase if the client timeout was lower than the connect timeout times the
6004 number of retries.
6005
willy tarreau197e8ec2005-12-17 14:10:59 +010060062003/09/21 : 1.1.24
6007 - if a client sent a full request then shut its write connection down, then
6008 the request was aborted. This case was detected only when using haproxy
6009 both as health-check client and as a server.
6010 - if 'option httpchk' is used in a 'health' mode server, then responses will
6011 change from 'OK' to 'HTTP/1.0 200 OK'.
6012 - fixed a Linux-only bug in case of HTTP server health-checks, where a single
6013 server response followed by a close could be ignored, and the server seen
6014 as failed.
6015
willy tarreaueedaa9f2005-12-17 14:08:03 +010060162003/09/19 : 1.1.23
6017 - fixed a stupid bug introduced in 1.1.22 which caused second and subsequent
6018 'default' sections to keep previous parameters, and not initialize logs
6019 correctly.
6020 - fixed a second stupid bug introduced in 1.1.22 which caused configurations
6021 relying on 'dispatch' mode to segfault at the first connection.
6022 - 'option httpchk' now supports method, HTTP version and a few headers.
6023 - now, 'option httpchk', 'cookie' and 'capture' can be specified in
6024 'defaults' section
6025
60262003/09/10 : 1.1.22
willy tarreaua41a8b42005-12-17 14:02:24 +01006027 - 'listen' now supports optionnal address:port-range lists
6028 - 'bind' introduced to add new listen addresses
6029 - fixed a bug which caused a session to be kept established on a server till
6030 it timed out if the client closed during the DATA phase.
6031 - the port part of each server address can now be empty to make the proxy
6032 connect to the server on the same port it was connected to, be an absolute
6033 unsigned number to reflect a single port (as in older versions), or an
6034 explicitly signed number (+N/-N) to indicate that this offset must be
6035 applied to the port the proxy was connected to, when connecting to the
6036 server.
6037 - the 'port' server option allows the user to specify a different
6038 health-check port than the service one. It is mandatory when only relative
6039 ports have been specified and check is required. By default, the checks are
6040 sent to the service port.
6041 - new 'defaults' section which is rather similar to 'listen' except that all
6042 values are only used as default values for future 'listen' sections, until
6043 a new 'defaults' resets them. At the moment, server options, regexes,
6044 cookie names and captures cannot be set in the 'defaults' section.
6045
willy tarreau2f6ba652005-12-17 13:57:42 +010060462003/05/06 : 1.1.21
6047 - changed the debug output format so that it now includes the session unique
6048 ID followed by the instance name at the beginning of each line.
6049 - in debug mode, accept now shows the client's IP and port.
6050 - added one 3 small debugging scripts to search and pretty print debug output
6051 - changed the default health check request to "OPTIONS /" instead of
6052 "OPTIONS *" since not all servers implement the later one.
6053 - "option httpchk" now accepts an optional parameter allowing the user to
6054 specify and URI other than '/' during health-checks.
6055
willy tarreaub1ff9db2005-12-17 13:51:03 +010060562003/04/21 : 1.1.20
6057 - fixed two problems with time-outs, one where a server would be logged as
6058 timed out during transfer that take longer to complete than the fixed
6059 time-out, and one where clients were logged as timed-out during the data
6060 phase because they didn't have anything to send. This sometimes caused
6061 slow client connections to close too early while in fact there was no
6062 problem. The proper fix would be to have a per-fd time-out with
6063 conditions depending on the state of the HTTP FSM.
6064
willy tarreau906b2682005-12-17 13:49:52 +010060652003/04/16 : 1.1.19
6066 - haproxy was NOT RFC compliant because it was case-sensitive on HTTP
6067 "Cookie:" and "Set-Cookie:" headers. This caused JVM 1.4 to fail on
6068 cookie persistence because it uses "cookie:". Two memcmp() have been
6069 replaced with strncasecmp().
6070
willy tarreau036e1ce2005-12-17 13:46:33 +010060712003/04/02 : 1.1.18
6072 - Haproxy can be compiled with PCRE regex instead of libc regex, by setting
6073 REGEX=pcre on the make command line.
6074 - HTTP health-checks now use "OPTIONS *" instead of "OPTIONS /".
6075 - when explicit source address binding is required, it is now also used for
6076 health-checks.
6077 - added 'reqpass' and 'reqipass' to allow certain headers but not the request
6078 itself.
6079 - factored several strings to reduce binary size by about 2 kB.
6080 - replaced setreuid() and setregid() with more standard setuid() and setgid().
6081 - added 4 status flags to the log line indicating who ended the connection
6082 first, the sessions state, the validity of the cookie, and action taken on
6083 the set-cookie header.
6084
60852002/10/18 : 1.1.17
6086 - add the notion of "backup" servers, which are used only when all other
6087 servers are down.
6088 - make Set-Cookie return "" instead of "(null)" when the server has no
6089 cookie assigned (useful for backup servers).
6090 - "log" now supports an optionnal level name (info, notice, err ...) above
6091 which nothing is sent.
6092 - replaced some strncmp() with memcmp() for better efficiency.
6093 - added "capture cookie" option which logs client and/or server cookies
6094 - cleaned up/down messages and dump servers states upon SIGHUP
6095 - added a redirection feature for errors : "errorloc <errnum> <url>"
6096 - now we won't insist on connecting to a dead server, even with a cookie,
6097 unless option "persist" is specified.
6098 - added HTTP/408 response for client request time-out and HTTP/50[234] for
6099 server reply time-out or errors.
6100
61012002/09/01 : 1.1.16
6102 - implement HTTP health checks when option "httpchk" is specified.
6103
61042002/08/07 : 1.1.15
6105 - replaced setpgid()/setpgrp() with setsid() for better portability, because
6106 setpgrp() doesn't have the same meaning under Solaris, Linux, and OpenBSD.
6107
61082002/07/20 : 1.1.14
6109 - added "postonly" cookie mode
6110
61112002/07/15 : 1.1.13
6112 - tv_diff used inverted parameters which led to negative times !
6113
61142002/07/13 : 1.1.12
6115 - fixed stats monitoring, and optimized some tv_* for most common cases.
6116 - replaced temporary 'newhdr' with 'trash' to reduce stack size
6117 - made HTTP errors more HTML-fiendly.
6118 - renamed strlcpy() to strlcpy2() because of a slightly difference between
6119 their behaviour (return value), to avoid confusion.
6120 - restricted HTTP messages to HTTP proxies only
6121 - added a 502 message when the connection has been refused by the server,
6122 to prevent clients from believing this is a zero-byte HTTP 0.9 reply.
6123 - changed 'Cache-control:' from 'no-cache="set-cookie"' to 'private' when
6124 inserting a cookie, because some caches (apache) don't understand it.
6125 - fixed processing of server headers when client is in SHUTR state
6126
61272002/07/04 :
6128 - automatically close fd's 0,1 and 2 when going daemon ; setpgrp() after
6129 setpgid()
6130
61312002/06/04 : 1.1.11
6132 - fixed multi-cookie handling in client request to allow clean deletion
6133 in insert+indirect mode. Now, only the server cookie is deleted and not
willy tarreau906b2682005-12-17 13:49:52 +01006134 all the header. Should now be compliant to RFC2965.
willy tarreau036e1ce2005-12-17 13:46:33 +01006135 - added a "nocache" option to "cookie" to specify that we explicitly want
6136 to add a "cache-control" header when we add a cookie.
6137 It is also possible to add an "Expires: <old-date>" to keep compatibility
6138 with old/broken caches.
6139
61402002/05/10 : 1.1.10
6141 - if a cookie is used in insert+indirect mode, it's desirable that the
6142 the servers don't see it. It was not possible to remove it correctly
6143 with regexps, so now it's removed automatically.
6144
61452002/04/19 : 1.1.9
6146 - don't use snprintf()'s return value as an end of message since it may
6147 be larger. This caused bus errors and segfaults in internal libc's
6148 getenv() during localtime() in send_log().
6149 - removed dead insecure send_syslog() function and all references to it.
6150 - fixed warnings on Solaris due to buggy implementation of isXXXX().
6151
61522002/04/18 : 1.1.8
6153 - option "dontlognull"
6154 - fixed "double space" bug in config parser
6155 - fixed an uninitialized server field in case of dispatch
6156 with no existing server which could cause a segfault during
6157 logging.
6158 - the pid logged was always the father's, which was wrong for daemons.
6159 - fixed wrong level "LOG_INFO" for message "proxy started".
6160
61612002/04/13 :
6162 - http logging is now complete :
6163 - ip:port, date, proxy, server
6164 - req_time, conn_time, hdr_time, tot_time
6165 - status, size, request
6166 - source address
6167
61682002/04/12 : 1.1.7
6169 - added option forwardfor
6170 - added reqirep, reqidel, reqiallow, reqideny, rspirep, rspidel
6171 - added "log global" in "listen" section.
6172
61732002/04/09 :
6174 - added a new "global" section :
6175 - logs
6176 - debug, quiet, daemon modes
6177 - uid, gid, chroot, nbproc, maxconn
6178
61792002/04/08 : 1.1.6
6180 - regex are now chained and not limited anymore.
6181 - unavailable server now returns HTTP/502.
6182 - increased per-line args limit to 40
6183 - added reqallow/reqdeny to block some request on matches
6184 - added HTTP 400/403 responses
6185
61862002/04/03 : 1.1.5
6187 - connection logging displayed incorrect source address.
6188 - added proxy start/stop and server up/down log events.
6189 - replaced log message short buffers with larger trash.
6190 - enlarged buffer to 8 kB and replace buffer to 4 kB.
6191
61922002/03/25 : 1.1.4
6193 - made rise/fall/interval time configurable
6194
61952002/03/22 : 1.1.3
6196 - fixed a bug : cr_expire and cw_expire were inverted in CL_STSHUT[WR]
6197 which could lead to loops.
6198
61992002/03/21 : 1.1.2
6200 - fixed a bug in buffer management where we could have a loop
6201 between event_read() and process_{cli|srv} if R==BUFSIZE-MAXREWRITE.
6202 => implemented an adjustable buffer limit.
6203 - fixed a bug : expiration of tasks in wait queue timeout is used again,
6204 and running tasks are skipped.
6205 - added some debug lines for accept events.
6206 - send warnings for servers up/down.
6207
62082002/03/12 : 1.1.1
6209 - fixed a bug in total failure handling
6210 - fixed a bug in timestamp comparison within same second (tv_cmp_ms)
6211
62122002/03/10 : 1.1.0
6213 - fixed a few timeout bugs
6214 - rearranged the task scheduler subsystem to improve performance,
6215 add new tasks, and make it easier to later port to librt ;
6216 - allow multiple accept() for one select() wake up ;
6217 - implemented internal load balancing with basic health-check ;
6218 - cookie insertion and header add/replace/delete, with better strings
6219 support.
6220
62212002/03/08
6222 - reworked buffer handling to fix a few rewrite bugs, and
6223 improve overall performance.
6224 - implement the "purge" option to delete server cookies in direct mode.
6225
62262002/03/07
6227 - fixed some error cases where the maxfd was not decreased.
6228
62292002/02/26
6230 - now supports transparent proxying, at least on linux 2.4.
6231
62322002/02/12
6233 - soft stop works again (fixed select timeout computation).
6234 - it seems that TCP proxies sometimes cannot timeout.
6235 - added a "quiet" mode.
6236 - enforce file descriptor limitation on socket() and accept().
6237
62382001/12/30 : release of version 1.0.2 : fixed a bug in header processing
62392001/12/19 : release of version 1.0.1 : no MSG_NOSIGNAL on solaris
62402001/12/16 : release of version 1.0.0.
62412001/12/16 : added syslog capability for each accepted connection.
62422001/11/19 : corrected premature end of files and occasional SIGPIPE.
62432001/10/31 : added health-check type servers (mode health) which replies OK then closes.
62442001/10/30 : added the ability to support standard TCP proxies and HTTP proxies
6245 with or without cookies (use keyword http for this).
62462001/09/01 : added client/server header replacing with regexps.
6247 eg:
6248 cliexp ^(Host:\ [^:]*).* Host:\ \1:80
6249 srvexp ^Server:\ .* Server:\ Apache
62502000/11/29 : first fully working release with complete FSMs and timeouts.
62512000/11/28 : major rewrite
62522000/11/26 : first write