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