1.00 [KK 2006-05-05] This version is identical to 0.33, except that
     crossroads will now be hosted in a publicly accessible SVN
     repository at svn://svn.e-tunity.com/crossroads.
1.01 [KK 2006-05-09] Small codechange in http_serversocket() for GCC <
     4.0. (There was accidentally post-3 code which I didn't notice:)
     [KK 2006-05-10] Improved messaging in choose_backend(), in the
     case of round robin balancing. Implemented weighted balancing with
     "dispatchmode random".
     [KK 2006-05-11] Updated the docs regarding the new primary site
     http://crossroads.e-tunity.com. Promoted 1.01 to the next stable
     release, versioned 1.02 as the next development release.
1.03 [KK 2006-06-20] Support for older gcc's (incase strlcat() is
     missing; added strlcat.c).
     Added -lm to linkage flags for fmod().
     This is a new development version despite the fact that 1.02
     isn't promoted to 'stable'.
     [KK 2006-06-22] Changed internal-server-error HTTP
     response. Fixed very small bug in weighted random dispatchmode;
     the old code wouldn't correctly see similar high weights.
     [KK 2006-06-26] Fixed counting of total nr. of connections in
     sticky HTTP mode (as shown with 'crossroads status').
1.06 [KK 2006-07-25] Small documentation fix. Embedded c-conf upped to
     1.03 (protection from endless recursive directory
     scans). Optimized http_serve() for short messages (no
     piggybacking is necessary after the initial chat). Flag -u (user
     switch) removed; user switching won't work given privileged TCP
     ports, shared memory access and semaphores all mixed together (or
     in other words: I'm too lazy right now to make this work
     elegantly.)
     Version 1.06 promoted to the next stable.
1.07 [KK 2006-07-25] Next development (trunk) version. Directive
     'insertrealip' implemented. Docs updated. While creating docs,
     leading tabs are now expanded (needed for PDF documentation).
     [KK 2006-08-28] 1.07 promoted to next stable version.
1.12 [KK 2006-09-13] Small changes in wakeup handler. Timeout handling
     in HTTP service processing slightly changed.
     [KK 2006-09-15] Added checks whether both client and server want
     persisting HTTP connections (see http_serve()). Header
     Proxy-Connection: close is inserted if the connections should get
     closed. Rewrote network to- and fro- copying: net_copy() now
     replaces net_read() + net_write().
     [KK 2006-09-26] Promoted to STABLE.
1.15 [KK 2006-10-23] Speedup in the handling of chunked HTTP message
     transfer. Furthermore, chunked messages are treated as
     single-shot actions (see RFC2616, liberally explained by yours
     truly).
     [KK 2006-11-01] Bison- and flex-generated files are no longer
     removed in 'make clean'. This helps folks who want to build
     Crossroads but don't have these tools.
     Version 1.15 marked as 'stable'.
1.16 [KK 2006-11-01] New development version. Usage text updated to
     point to http://crossroads.e-tunity.com. Flag -s
     implemented. Small bugfix in 'restart' action.
     [KK 2006-11-28] Promoted to next stable version.
1.17 [KK 2006-11-28] Next development version.
     [KK 2006-11-29] Removed debugging stuff which by mistake slipped
     into 1.16 stable. Shipping this 1.17 as next-stable (instead of
     the previous 1.16, which is theoretically unnecessarily slow).     
1.23 [KK 2007-01-04] Removed "sampleconf" program option. There are
     too many config options to have all the sample text in the
     binary. Other small fixes.     
1.24 [KK 2007-01-26] This is identical to version 1.23, tagged Stable.
1.25 [KK 2007-01-26] Next development release.
1.26 [KK 2007-02-13] Backends that are unavailable are skipped in the
     determination of targets during sticky HTTP sessions. This used
     to be: only backends that are available are candidate. Difference
     is that backends that are now marked down, can still be selected
     -- so that sticky HTTP sessions get a chance to continue.
1.27 [KK 2007-02-14] Verbosity gets set correctly in HTTP type
     services. 
1.28 [KK 2007-02-15] Added small dependencies to src/Makefile. Added
     debugging code to http_header_add(). The signal handler (see
     interrupt.c) will exit immediately upon SIGPIPE when in serving
     mode. There is no need to wait for the current request to finish,
     when one of the network pipes has gone. Change exiting to _exit()
     instead of exit() to avoid cleanup code execution. Misc small
     changes in http mode.
1.29 [KK 2007-02-25] Small code changes in error/msg/warning, no
     action when no format string.
     [KK 2007-03-07] fork_tcp_servicer() won't abort upon fork
     failure, just warn. This avoids fatal stops when the process
     table is full.
1.30 [KK 2007-03-20] Signed/unsigned fix in net_read() (return value <
     0 would get evaluated badly when taken as unsigned). Changed
     state/string handling, so that "up" is a synonym for "available"
     (eg. in "crossroads tell {myservice} {mybackend} up"). Fixed up
     sources so that compilation with -pedantic is OK. Added flag -W
     to warn against loads of things, mainly signed/unsigned comparisons.
1.31 [KK 2007-03-21] Changed messaging from error to warning when a
     TCP write fails towards the server. The fact that the server
     hangs up, can be actually intended -- Crossroads can't make
     assumptions about it. Marked 1.30 as stable, 1.31 is the next
     development release.
1.32 [KK 2007-03-30] Change net_read() and net_copy(): Read exceptions
     on the client network socket don't issue error or warning
     messages; clients are notorious for just dropping dead. Logging
     this just clogs up the syslog. These situations are only logged
     when verbosity is on.
1.33 [KK 2007-04-02] Added hashpjw.c to the repository - I had
     forgotten that in 1.32 (so, 1.32 is broken..).
1.34 [KK 2007-04-03] Added SVN revision number to the overall version
     ID, so that tracking historical versions becomes easier. Added
     flag -t which causes tabular display in 'crossroads status'
     (useful for automated parsing, e.g. for heartbeat scripts).
     [KK 2007-04-06] Increased max # of back ends per service to
     20. (In the future this should be a dynamic value - but it'll
     take code changes; so for now, I'm taking 20.)
1.35 [KK 2007-04-16] Added 'retries' keyword to back end definitions.
1.36 [KK 2007-04-16] Fixed small bug in total usage counting. Bugfix
     in resetting temporary failure counts of back ends (while waiting
     for retries to expire). Added __attribute__ compiler macro to
     functions such as msg(), warning() -- and fixed format conversion issues.
1.37 [KK 2007-04-17] Intermediate release for bughunts on 64bit Linux.
1.38 [KK 2007-04-26] Many changes:
     - 'crossroads status' now supports optional service/backend arguments.
     - Added specific nullstring initializers to parser.y.
     - Added info on ip_conntrack_max to the tips section of the docs
       (Thanks, Felix).
     - Rewritten the code that timeouts upon network connect (this used
       to have jumps which isn't safe). 
     - Added docs on -t (tabular status report) flag.
     - Added code to avoid logging and running on-end hooks when HTTP
       mode fails to find a suitable back end.
     - Added test/t8.conf which works with breaking-client, to
       simulate clients that hang up.
     - 'make clean' removes GDB's history files
     - Removed usage of non-reentrant functions from signal handler
       (interrupt.c) 
     - Added RETRY_WAIT, small sleep time when retrying connecting to
       the same back end
     - Added description of retries keyword to the Tips&Tricks section
     - Fixed mark_activity() to apply decays only for 'true'
       connections, not for wakeup calls
     - Split up the tips section of the docs into separate sources.
     - Added flag -C to show compile-time settings.
     - Sped up make process by scanning c-conf output just once (:=
       instead of =, probably GNU Make only, we'll see).
1.39 [KK 2007-05-06]
     - This is the next development release (1.38 promoted to stable).
     -  Fixed tcp_serve() to only warn when accept() fails (this used
        to be fatal). 
1.40 [KK 2007-05-16] 
     - Added flag -m to control shared memory access mode.
     - Implemented flag -x for XML report of status.
     - Added tips sections on health check scripting and on XSLT's.
     - Cosmetic code changes.
     - The daemon 'sec' is now in in a separate crossroads-daemon
       binary. Configuration parsing, usage info etc. not included, so
       that the sec daemon has a smaller footprint.
1.41 [KK 2007-05-18] 
     - Included c-conf 1.07 (caching provisions - way faster build)
     - Fixed deliverable, version 1.40 lacked files (DISTRO WAS BROKEN)
1.42 [KK 2007-05-21]
     - Fixed small portability issue for gcc 4.0.3 (library dependency
       with libm.a)
     - Added etc/svncheck to verify that SVN holds all files, before
       making a distro.
1.43 [KK 2007-05-22] 
     - Changed the way that shmkeys are computed; the old way would
       cause more collisions.
     - Implemented DNS caching. By default 20 gethostbyname() results
       can be cached, with a ttl of 1 hour per entry; though the ttl
       has a default of 0 (no caching). Flag -d can overrule the TTL.
     - Fixed makefile dependency for crossroads-daemon.
     - Upped c-conf to 1.08.
     - Reorganized docs. Key variables (author, maintainer, ...) are
       passed from the Makefile.
     - Added a small test run to the making: test/t*conf should parse
       OK, test/bad*conf should fail. These tests are auto-run on
       'make local'.
     - Added #include to the grammar. Shell-style #-comments are no
       longer allowed. Added #define to the grammar.
1.44 [KK 2007-06-12]
     - Small bugfix in -b flag handling (useful during debugging only).
1.45 [KK 2007-06-12]
     - Configuration option 'headerinspection {deep|shallow}'
       implemented. Documentation updated. Several other documentation fixes.
     - New make target 'dbginstall', installs gdb-able versions into
       /usr/local/bin
     - Upped c-conf to 1.09: /usr/lib64 is in the library search path
       (thanks Joern F. for pointing this one out).
     - Added setproctitle() for non-BSD-ish systems. Previous
       set_program_title() is obsolete (it woundn't save the envp).
     - Flag -B <bufsize> introduced, making the TCP buffer size
       variable. Previous constant TCP_BUFSZ is now DEFAULT_TCP_BUFSZ,
       which is now 5k instead of 10k.
1.46 [KK 2007-06-25] 
     - Flag -X added (for xslt reference embedding)
     - "crossroads tell {service} {backend} {state}": state can be
       numeric
     - Added crossroads-mgr, updated all docs, etc..
     - Fixed "make distclean"
1.47 [KK 2007-06-27] 
     - Added "externalhandler" to "revivinginterval"
     - Added "checkinterval"
     - Last connect time per back end gets stored
1.48 [KK 2007-07-04]
     - Added strupr() for systems that lack it.
1.49 [KK 2007-07-04]
     - Next development cycle version.
1.50 [KK 2007-07-08]
     - Back end states can be initially set using the "state"
       directive. Command "crossroads tell" now requires keyword
       "state" for setting the state.
     - Introduced actual_server and actual_port in SHM block for back
       end addresses. Introduced define FQDN_LENGTH. Back end addresses
       can be set using "crossroads tell".
     - Web front end crossroads-mgr can now redefine a back end address.
1.51 [KK 2007-07-10]
     - Removed global MAX_BACKEND setting. The number of back ends per
       service is now totally dynamic - derived from the
       configuration.
     - Added counts of available back ends, unavailable back ends and
       so on to "crossroads -x status". The web interface
       crossroads-mgr now picks this up.
     - Documentation updated. Small fixes.
1.52 [KK 2007-07-12]
     - Added list of keywords to the docs
     - Removed Log4Perl dependency in crossroads-mgr (easier for distro's)
1.53 [KK 2007-07-29]
     - Misc small changes, thanks Simon Matter for all suggestions,
       fixes and diffs! Changes include: ps fix for Linux systems in
       crossroads-mgr, 'use POSIX' fix in Perl, C code fix for for
       older gcc's.
     - crossroads-mgr now supports a flag '-a <address>' to specify a
       listening address (also suggested by Simon).
1.54 [KK 2007-07-30]
     - Changed copyright to GPL V3.
1.55 [KK 2007-08-16]
     - Changed error handling of the finding of duplicate ports. Same
       ports in different service statements are now an error only if
       one or both services don't list a bindto address (or if the two
       listed bindto addresses are the same). Thanks, Rodd Johnson,
       for finding this bug.
1.56 [KK 2007-08-20]
     - This is basically only version 1.55 marked STABLE.
1.57 [KK 2007-08-20]
     - Next development release.
1.58 [KK 2007-08-21]
     - Bugfix in the handling of "bindto any".
1.59 [KK 2007-08-22]
     - 1.58 Stable
1.60 [KK 2007-08-29]
     - upped c-conf to 1.10
     - Support for __progname_full in systems that have it, see setproctitle()
1.61 [KK 2007-10-02]
     - Added messaging to allowfrom/denyfrom rule handling. Bugfixes
       in the parsing and handling of allow/deny rules.
1.62 [KK 2007-10-03]
     - Extended format specifiers with %g. In time-related modifiers
       like %g, %t, %T, the optional number is an offset into the
       future (so %3600t is now + 1h). Thanks Gunnar S. for pointing
       this out. 
1.63 [KK 2007-12-10]
     - Cosmetic change to usage text.
     - Flag -p implemented.
     - Commandline functions (start/stop) etc now in properly named sources.
1.64 [KK 2007-12-27]
     - Bugfix in "dispatchmode byclientip"
     - Added testing utility test/hashtest
     - The parser is stricter. HTTP-related directives are now only
       allowed when 'type http' is given.
1.65 [KK 2008-01-08]
     - Bugfix in parsing of -B option (TCP buffer size)
1.66 [KK 2008-01-09]
     - Forking of a servicer moved 'forward', before dispatching
       phase. That way external dispatchers won't slow down the
       listener. This version is EXPERIMENTAL ONLY - use 1.65 until
       this code has proven stable.
1.67 [KK 2008-01-09]
     - In the case of an external dispatcher: the dispatcher will be
       called even when there is only one backend available. The
       dispatcher may have side-actions to perform. Thanks Nicolas
       Prochazka for suggesting this. EXPERIMENTAL VERSION - use 1.65
       until this code has proven stable.
1.68 [KK 2008-01-10]
     - "crossroads status" now also reports the PID of each service
       listener process (in both plain text and XML). Thanks Felix Ostmann
       for suggesting.
1.69 [KK 2008-01-11]
     - The HTTP header processing was rewritten to work with octet
       chunks. Previously TCP buffers would be processed byte by byte
       to match headers. Hopefully this will speed up HTTP processing.
1.70 [KK 2008-01-11]
     - Bugfix in 1.69 (yeah that was fast)..
1.71 [KK 2008-01-12]
     - Bugfix in 1.70 related to HTTP body copy-thru mode.
1.75 [KK 2008-01-25]
     - Changed chunked transfer copying in HTTP mode. The trailing
       \r\n, following a zero-bytes chunk, also gets handled in
       http_copy(). Before it was left for handling in a next loop.
     - Bugfix in the parser, regarding handling of external dispatcher
       definitions.
     - Change in the way Crossroads handles responses from external
       dispatchers: when no back ends are available, XR will sleep for
       a short time. Better handling of incorrect responses.
     - Irritating svn messages during build phase suppressed.
1.76 [KK 2008-01-31]
     - Parser again made stricter: a backend's maxconnections is not allowed
       when the service's dispatch type is an external handler.
     - Porting issues for gcc 4.0.2 (default at MacOSX Leopard) solved.
1.77 [KK 2008-03-07]
     - Next development version. Introduced %l for last-connect timing.
1.78 [KK 2008-03-14]
     - Limits of running service are shown when verbosity is on.
     - Fixed "no child processes" error when doing system() calls
       under Linux. The signal handler for SIGCHLD must apparently be
       off (see src/lib/sysrun.c). Also fixed for popen() calls (see
       src/lib/choosebackend.c).
1.79 [KK 2008-04-01]
     - Changed 'make' in '$(MAKE)' in all Makefiles to support 'gmake'
       invocations.
     - Added debugging to config_write() (Solaris problems)
     - Changed limits_msg() to avoid RLIMIT_MEMLOCK, RLIMIT_NPROC,
       RLIMIT_RSS on systems that don't have these (Solaris problems)
     - Rewrote Messaging functions msg(), error(), warning() to
       autosupply the service name.
     - The configuration file is now searched relative to the program,
       then as /etc/crossroads.conf. So if eg. the program is
       /opt/crossroads/bin/crossroads, then the config may be
       /opt/crossroads/etc/crossroads.conf. 
1.80 [KK 2008-05-19]
     - "Read from <client/server> timed out" is now only an error when
       it concerns the server. When it concerns the client, it's only a
       verbose message.
     - In http_copy(): Copy-thru mode from server to client is NOT
       entered when the server sent a HTTP/1.x 3xx response. HTTP 300
       responses are not assumed to have a body.
1.81 [KK 2008-06-26]
     - Memory leaks debugging
