ChangeLog :
===========

2004/10/18 : 1.2.2 (1.1.29)
  - fixed a bug where a TCP connection would be logged twice if the 'logasap'
    option was enabled without the 'tcplog' option.
  - encode_string() would use hdr_encode_map instead of the map argument.

2004/08/10 : (1.1.29-pre2)
  - the logged request is now encoded with '#XX' for unprintable characters
  - new keywords 'capture request header' and 'capture response header' enable
    logging of arbitrary HTTP headers in requests and responses
  - removed "-DSOLARIS" after replacing the last inet_aton() with inet_pton()

2004/06/06 : 1.2.1 (1.1.28)
  - added the '-V' command line option to verbosely report errors even though
    the -q or 'quiet' options are specified. This is useful with '-c'.
  - added a Red Hat init script and a .spec from Simon Matter <simon.matter@invoca.ch>

2004/06/05 :
  - added the "logasap" option which produces a log without waiting for the data
    to be transferred from the server to the client.
  - added the "httpclose" option which removes any "connection:" header and adds
    "Connection: close" in both direction.
  - added the 'checkcache' option which blocks cacheable responses containing
    dangerous headers, such as 'set-cookie'.
  - added 'rspdeny' and 'rspideny' to block certain responses to avoid sensible
    information leak from servers.

2004/04/18 :
  - send an EMERG log when no server is available for a given proxy
  - added the '-c' command line option to syntactically check the
    configuration file without starting the service.

2003/11/09 : 1.2.0
  - the same as 1.1.27 + IPv6 support on the client side

2003/10/27 : 1.1.27
  - the configurable HTTP health check introduced in 1.1.23 revealed a shameful
    bug : the code still assumed that HTTP requests were the same size as the
    original ones (22 bytes), and failed if they were not.
  - added support for pidfiles.

2003/10/22 : 1.1.26
  - the fix introduced in 1.1.25 for client timeouts while waiting for servers
    broke almost all compatibility with POST requests, because the proxy
    stopped to read anything from the client as soon as it got all of its
    headers.

2003/10/15 : 1.1.25
  - added the 'tcplog' option, which provides enhanced, HTTP-like logs for
    generic TCP proxies, or lighter logs for HTTP proxies.
  - fixed a time-out condition wrongly reported as client time-out in data
    phase if the client timeout was lower than the connect timeout times the
    number of retries.

2003/09/21 : 1.1.24
  - if a client sent a full request then shut its write connection down, then
    the request was aborted. This case was detected only when using haproxy
    both as health-check client and as a server.
  - if 'option httpchk' is used in a 'health' mode server, then responses will
    change from 'OK' to 'HTTP/1.0 200 OK'.
  - fixed a Linux-only bug in case of HTTP server health-checks, where a single
    server response followed by a close could be ignored, and the server seen
    as failed.

2003/09/19 : 1.1.23
  - fixed a stupid bug introduced in 1.1.22 which caused second and subsequent
    'default' sections to keep previous parameters, and not initialize logs
    correctly.
  - fixed a second stupid bug introduced in 1.1.22 which caused configurations
    relying on 'dispatch' mode to segfault at the first connection.
  - 'option httpchk' now supports method, HTTP version and a few headers.
  - now, 'option httpchk', 'cookie' and 'capture' can be specified in
    'defaults' section

2003/09/10 : 1.1.22
  - 'listen' now supports optionnal address:port-range lists
  - 'bind' introduced to add new listen addresses
  - fixed a bug which caused a session to be kept established on a server till
    it timed out if the client closed during the DATA phase.
  - the port part of each server address can now be empty to make the proxy
    connect to the server on the same port it was connected to, be an absolute
    unsigned number to reflect a single port (as in older versions), or an
    explicitly signed number (+N/-N) to indicate that this offset must be
    applied to the port the proxy was connected to, when connecting to the
    server.
  - the 'port' server option allows the user to specify a different
    health-check port than the service one. It is mandatory when only relative
    ports have been specified and check is required. By default, the checks are
    sent to the service port.
  - new 'defaults' section which is rather similar to 'listen' except that all
    values are only used as default values for future 'listen' sections, until
    a new 'defaults' resets them. At the moment, server options, regexes,
    cookie names and captures cannot be set in the 'defaults' section.

2003/05/06 : 1.1.21
  - changed the debug output format so that it now includes the session unique
    ID followed by the instance name at the beginning of each line.
  - in debug mode, accept now shows the client's IP and port.
  - added one 3 small debugging scripts to search and pretty print debug output
  - changed the default health check request to "OPTIONS /" instead of
    "OPTIONS *" since not all servers implement the later one.
  - "option httpchk" now accepts an optional parameter allowing the user to
    specify and URI other than '/' during health-checks.

2003/04/21 : 1.1.20
  - fixed two problems with time-outs, one where a server would be logged as
    timed out during transfer that take longer to complete than the fixed
    time-out, and one where clients were logged as timed-out during the data
    phase because they didn't have anything to send. This sometimes caused
    slow client connections to close too early while in fact there was no
    problem. The proper fix would be to have a per-fd time-out with
    conditions depending on the state of the HTTP FSM.

2003/04/16 : 1.1.19
  - haproxy was NOT RFC compliant because it was case-sensitive on HTTP
    "Cookie:" and "Set-Cookie:" headers. This caused JVM 1.4 to fail on
    cookie persistence because it uses "cookie:". Two memcmp() have been
    replaced with strncasecmp().

2003/04/02 : 1.1.18
  - Haproxy can be compiled with PCRE regex instead of libc regex, by setting
    REGEX=pcre on the make command line.
  - HTTP health-checks now use "OPTIONS *" instead of "OPTIONS /".
  - when explicit source address binding is required, it is now also used for
    health-checks.
  - added 'reqpass' and 'reqipass' to allow certain headers but not the request
    itself.
  - factored several strings to reduce binary size by about 2 kB.
  - replaced setreuid() and setregid() with more standard setuid() and setgid().
  - added 4 status flags to the log line indicating who ended the connection
    first, the sessions state, the validity of the cookie, and action taken on
    the set-cookie header.

2002/10/18 : 1.1.17
  - add the notion of "backup" servers, which are used only when all other
    servers are down.
  - make Set-Cookie return "" instead of "(null)" when the server has no
    cookie assigned (useful for backup servers).
  - "log" now supports an optionnal level name (info, notice, err ...) above
    which nothing is sent.
  - replaced some strncmp() with memcmp() for better efficiency.
  - added "capture cookie" option which logs client and/or server cookies
  - cleaned up/down messages and dump servers states upon SIGHUP
  - added a redirection feature for errors : "errorloc <errnum> <url>"
  - now we won't insist on connecting to a dead server, even with a cookie,
    unless option "persist" is specified.
  - added HTTP/408 response for client request time-out and HTTP/50[234] for
    server reply time-out or errors.

2002/09/01 : 1.1.16
  - implement HTTP health checks when option "httpchk" is specified.

2002/08/07 : 1.1.15
  - replaced setpgid()/setpgrp() with setsid() for better portability, because
    setpgrp() doesn't have the same meaning under Solaris, Linux, and OpenBSD.

2002/07/20 : 1.1.14
  - added "postonly" cookie mode

2002/07/15 : 1.1.13
  - tv_diff used inverted parameters which led to negative times !

2002/07/13 : 1.1.12
  - fixed stats monitoring, and optimized some tv_* for most common cases.
  - replaced temporary 'newhdr' with 'trash' to reduce stack size
  - made HTTP errors more HTML-fiendly.
  - renamed strlcpy() to strlcpy2() because of a slightly difference between
    their behaviour (return value), to avoid confusion.
  - restricted HTTP messages to HTTP proxies only
  - added a 502 message when the connection has been refused by the server,
    to prevent clients from believing this is a zero-byte HTTP 0.9 reply.
  - changed 'Cache-control:' from 'no-cache="set-cookie"' to 'private' when
    inserting a cookie, because some caches (apache) don't understand it.
  - fixed processing of server headers when client is in SHUTR state

2002/07/04 :
  - automatically close fd's 0,1 and 2 when going daemon ; setpgrp() after
    setpgid()

2002/06/04 : 1.1.11
  - fixed multi-cookie handling in client request to allow clean deletion
    in insert+indirect mode. Now, only the server cookie is deleted and not
    all the header. Should now be compliant to RFC2965.
  - added a "nocache" option to "cookie" to specify that we explicitly want
    to add a "cache-control" header when we add a cookie.
    It is also possible to add an "Expires: <old-date>" to keep compatibility
    with old/broken caches.

2002/05/10 : 1.1.10
  - if a cookie is used in insert+indirect mode, it's desirable that the
    the servers don't see it. It was not possible to remove it correctly
    with regexps, so now it's removed automatically.

2002/04/19 : 1.1.9
  - don't use snprintf()'s return value as an end of message since it may
    be larger. This caused bus errors and segfaults in internal libc's
    getenv() during localtime() in send_log().
  - removed dead insecure send_syslog() function and all references to it.
  - fixed warnings on Solaris due to buggy implementation of isXXXX().

2002/04/18 : 1.1.8
  - option "dontlognull"
  - fixed "double space" bug in config parser
  - fixed an uninitialized server field in case of dispatch
    with no existing server which could cause a segfault during
    logging.
  - the pid logged was always the father's, which was wrong for daemons.
  - fixed wrong level "LOG_INFO" for message "proxy started".

2002/04/13 :
  - http logging is now complete :
    - ip:port, date, proxy, server
    - req_time, conn_time, hdr_time, tot_time
    - status, size, request
  - source address

2002/04/12 : 1.1.7
  - added option forwardfor
  - added reqirep, reqidel, reqiallow, reqideny, rspirep, rspidel
  - added "log global" in "listen" section.

2002/04/09 :
  - added a new "global" section :
    - logs
    - debug, quiet, daemon modes
    - uid, gid, chroot, nbproc, maxconn

2002/04/08 : 1.1.6
  - regex are now chained and not limited anymore.
  - unavailable server now returns HTTP/502.
  - increased per-line args limit to 40
  - added reqallow/reqdeny to block some request on matches
  - added HTTP 400/403 responses

2002/04/03 : 1.1.5
  - connection logging displayed incorrect source address.
  - added proxy start/stop and server up/down log events.
  - replaced log message short buffers with larger trash.
  - enlarged buffer to 8 kB and replace buffer to 4 kB.

2002/03/25 : 1.1.4
  - made rise/fall/interval time configurable

2002/03/22 : 1.1.3
  - fixed a bug : cr_expire and cw_expire were inverted in CL_STSHUT[WR]
    which could lead to loops.

2002/03/21 : 1.1.2
  - fixed a bug in buffer management where we could have a loop
    between event_read() and process_{cli|srv} if R==BUFSIZE-MAXREWRITE.
    => implemented an adjustable buffer limit.
  - fixed a bug : expiration of tasks in wait queue timeout is used again,
    and running tasks are skipped.
  - added some debug lines for accept events.
  - send warnings for servers up/down.

2002/03/12 : 1.1.1
  - fixed a bug in total failure handling
  - fixed a bug in timestamp comparison within same second (tv_cmp_ms)

2002/03/10 : 1.1.0
  - fixed a few timeout bugs
  - rearranged the task scheduler subsystem to improve performance,
    add new tasks, and make it easier to later port to librt ;
  - allow multiple accept() for one select() wake up ;
  - implemented internal load balancing with basic health-check ;
  - cookie insertion and header add/replace/delete, with better strings
    support.

2002/03/08
  - reworked buffer handling to fix a few rewrite bugs, and
    improve overall performance.
  - implement the "purge" option to delete server cookies in direct mode.

2002/03/07
  - fixed some error cases where the maxfd was not decreased.

2002/02/26
  - now supports transparent proxying, at least on linux 2.4.

2002/02/12
  - soft stop works again (fixed select timeout computation).
  - it seems that TCP proxies sometimes cannot timeout.
  - added a "quiet" mode.
  - enforce file descriptor limitation on socket() and accept().

2001/12/30 : release of version 1.0.2 : fixed a bug in header processing
2001/12/19 : release of version 1.0.1 : no MSG_NOSIGNAL on solaris
2001/12/16 : release of version 1.0.0.
2001/12/16 : added syslog capability for each accepted connection.
2001/11/19 : corrected premature end of files and occasional SIGPIPE.
2001/10/31 : added health-check type servers (mode health) which replies OK then closes.
2001/10/30 : added the ability to support standard TCP proxies and HTTP proxies
		with or without cookies (use keyword http for this).
2001/09/01 : added client/server header replacing with regexps.
		eg:
       		cliexp ^(Host:\ [^:]*).* Host:\ \1:80
       		srvexp ^Server:\ .* Server:\ Apache
2000/11/29 : first fully working release with complete FSMs and timeouts.
2000/11/28 : major rewrite
2000/11/26 : first write
