2.0.26 (20030603) Requests without a host (and port) are now assumed
    to be for RabbIT to handle, this should end the "I try to access
    the web configuration but all I got was a 400-reply". Changed the
    default argument to convert (-flatten instead of [0]) since
    png to jpeg conversion would return very small blank images
    instead of small but ok-looking images this way. RabbIT does no
    longer normally use cookie based ids to enable/disable cache
    rabbit relies on normal Cache-Control headers to be sent. If
    the option is needed it can now be controlled in the config file.
    The html parser was updated to handle (javascript) better.

2.0.25 (20030512) Fixed a problem where deflate data were compressed
    and the Content-Encoding header were overwritten with only
    gzip. Fixed a bug where private headers were deleted before they
    were sent to the client, causing some Set-Cookie:s to be removed
    and non-working sites. Fixed a problem where only the response
    line of the response header was read, it happened when the reason
    phrase was missing. Run findbugs on RabbIT source and fixed some
    of the problems it reported (did not agree on all of its warning).
    ImageHandler now handle the case that cache setup fails, due to
    better http/1.1 handling.

2.0.24 (20030424) Fixed a problem where 304 responses from the cache
    sometimes caused multiple responses. Fixed a few odd cases where a
    200 OK response from the cache could be used in response to
    if-range requests (they were revalidated with the server, which is
    ok, but not optimal). Added the option to turn off filtering based
    on user agent (to the DontFilterFilter) since at least java
    handles compressed pages badly.

2.0.23 (20030304) Fixed a problem where content in request got
    corrupted. Worked more on caching of partial content. Fixed a
    few problem with date parsing. Fixed so that the "Host" header 
    has correct port if any port was specified. A few other minor
    HTTP/1.1 compliance fixes.

2.0.22 (20030111) More work on http/1.1 compliance. Fixed so that it
    is possible to compile and run with jdk/1.1 again.

2.0.21 (20021125) More work on http/1.1. Update more headers when
    combining after a revalidate, Handle(drop) Content-Length and 
    chunked Transfer-Encoding. Return a stale entry or a 504 when
    communication with the server fails. Added handling of range
    requests, including multipart/byteranges in requests. License
    change (from old BSD to modern BSD). Updated config file with 
    more documentation.

2.0.20 (20020915) More work on http/1.1. Handle http headers better
    (in the really strange cases). Handle Warning headers
    better. Handle the Co-Advisors test suite (all 464 cases, more
    test cases coming soon). Better handling of 1xx responses when
    client is using HTTP/1.0. Updated the readLine method to be
    strict. 

2.0.19 (20020821) Added checks for min-fresh in requests. Some more
    handling of Connection headers and quoted tokens. Added handling
    for Max-Forwards for TRACE and OPTIONS requests.Some more minor
    fixes for http compliance and no-cache directives. Some more
    handling of cache control like max-stale and proxy-revalidate.

2.0.18 (20020729) Mostly HTTP/1.1 fixes. Updated handling of the cache
    system, it should now handle max-age, s-maxage, no-store controls
    correctly. Via headers are handled as they should. Stale caches are
    now revalidated instead of thrown away in a few more
    cases. Currently 242 out of 245 tests are ok, the remaining 3
    tests have bugs (the test, not RabbIT is broken).

2.0.17 (20020729) Added a filter (optional) that always perform proxy
    authentication on all users. Major HTTP/1.1 compliance work, this
    work is due to the nice people over at Co-Advisor/The measurment
    factory, http://coad.measurement-factory.com/. HTTP/1.1 changes
    include (better) handling of Vary, Cache-Control, Cache
    revalidation, Chunked input (from client forms), If-Match and
    If-None-Match handling. Currently 200 out of 203 tests are ok.

2.0.16 (20020106) Tried to fix the problems of html on the form
    '...framespacing="0"">' which used to break RabbIT's parser. For
    now we replace the second '"' with a ' ' and restart from that
    point. This seems to achieve what mozilla does. Added a maximum
    tries before giving up trying to connect to a site (in certain
    special cases RabbIT could loop forever trying to connect to an
    unreacable host).

2.0.15 (20011211) Fixed some problems with HTTP/0.9. Fixed some
    problems with chunking. Made sure that "Content-Length" headers
    are removed if we chunk. Hopefully Fixed all problems with the
    HTTP/1.1 and chunking data to the clients.

2.0.14 (20011121) More performance handling. Made GeneralHeader faster
    by removing the hashtable and toLowerCase calls. Less writes of
    zero length buffers. Chunk data to client if the request is using
    HTTP/1.1 (this has a funny effect on the GZIP header for pages
    that get compressed, but GZipOutputStream has to many private
    methods to override that behaviour.).

2.0.13 (20010930) (Not released) Made sure all threads RabbIT start
    have a name. Performance tweaks. Made sure that tag has a lower
    case tag that is used by the standard filters, quite a
    timesaver. Tried to speed up the cache systems handling of
    addEntry. Added a TagType to have static objects for the most
    common (filterwise) tag types.
    
2.0.12 (20010916) Fixed the problem with proxy chains and DNS
    lookups. RabbIT should not do DNS if it is connected to a proxy,
    but the HTTPBaseFilter did it. Performance tweaks in the
    HTMLParser, HTMLBlock, Token and FilterHandler this seems to give
    an 11% speedup for html parsing. Performance testing. Fixed
    ImageHandler so that it removes converted files that got bigger by
    the conversion.

2.0.11 (20010904) Broke up some long methods to several smaller for
    better readability. Updated and added documentation. Pooled the
    metahandlers since it was possible with a minor patch. Ran RabbIT
    through jmp (my own java memory profiler) to find and close some
    leaks. Try to help the garbage collector by nulling certain
    objects. Updated CacheStatus to show number of entries in the
    cache. Fixed the problems with proxy authorization for upstream
    proxy if RabbIT is part of a proxy chain. Updated the link
    verifier so that it ignores anchors. Only call setup once for mime
    type handlers.

2.0.10 (20010812) Added a LowresImageFilter that removes the lowsrc
    attributes from the <img> tags. Updated documentation. Updated the
    DontCacheFilter so that it can also operate on the mime type of
    the response. Also added the option to only cache on mime/URL. 
    Updated the HTTPDateParser to handle bad/old date types better,
    added logging of unparseable date strings. 

2.0.9 (20010608) Minor bug fixes to the HTMLParser. Updated
    documentation and javadoc. Accept HTTP headers with duplicate
    response lines even though this is a bug in the web server.
    Added a DontCacheFilter that can be used to not cache certain
    pages which can be useful for bad mannered chat systems etc.

2.0.8 (20010414) Minor bug fixes. Added a small program to inspect
    the cache from the command line. Minor performance especially in
    HTMLParser.

2.0.7 (20010212) Minor performance tweaks. Minor bug fixes. Better
    compliance to RFC 2616. Better error handling.

2.0.6 (20001227) Added some public interfaces to ConnectionHandler to
    make it possible to have a status page for outgoing keepalive
    connections. Added Erik Agsj's patch to handle basic auth in
    URLs. Wrote a thred pool to handle connections more efficiently. 

2.0.5 (20000610) Fixed simple(no proxy chaining but otherwise working)
    SSL-proxy handling. SSL proxying is configurable to allow connects
    to all ports, no ports or a specified set of ports (like
    443). Added Support for cache handlers, they work like the
    ordinary handlers but are run only on resources that are fetched
    from the cache. This means that it is simple to write your own
    imagehandler that takes an unmodified image from the cache and
    sends it filtered by the request made. Kinda nice to have but to
    do this always uses more resources.

2.0.4 (20000220) Fixed the LinkVerifier tool in such a way that it is
    actually usable for simple html-page linkverification, but still
    does not handle mail and ftp. Bugfixes in http package, this fixes
    a few sites that have been broken. Fixes in the installer. Fixed a
    major bug in HTTPInputStream with keepalive and known + unknown
    size.

2.0.3 (20000209) Fixed a little with the support script and the
    Makefile for RabbIT. Added some code to allow for public access in
    the /FileSender/public/ directory which means that the logo and
    adreplacer can be distributed with the proxy. Still needs a better
    (more general) accessfilter though. Made the installer
    better. Minor bugfixes and cleanup in the rabbit.http
    package. Updated documentation.

2.0.2 (20000129) Fixed a few bugs concerning keep alive and the HTTP
    response header, fixed a bug with NT and cache directories. Build
    GZIPHandler as an intermediate(*) to FilterHandler, this means
    that it is possible to gzip text/plain etc, without filtering
    those streams. Added uuencoding to the Coder so it is possible to
    do proxy authentication to the proxy behind RabbIT. Made RabbIT
    use HTTP/1.1 which keep alive when talking to web servers. This
    lead to a major rewrite of the input layer, but to the
    better. Fixed HTMLParser so that it compiles cleanly with Jikes
    (damn fast compiler, although it is not always nice :-). Fixed a
    bug concerning requests without an response body (like HEAD
    requests). Fixed a bug in GZIPHandler so that it does not gzip
    already compressed (gzip or compress) streams. Created
    GeneralHeader to allow for HTTPFooter which is useful when sending
    chunked data. Fixed a bug in HTTPHeader regarding response phrases
    that are multiline. Fixed a few bugs in ImageHandler and NCache.

    * FilterHandler will only gzip if GZIPHandler is gzipping, due to
    static setup functions.    

2.0.1 (991201) Added a DontFilterFilter that makes sure we dont filter
  pages that will break the HTMLparser (bad HTML is evil!). More 
  documentation. Added a few fixes for old HTTP/0.9 request
  mode. Added a BlinkFilter that removes blink and /blink tags. Added
  gzipping of text/html data, this saves quite a bit of data sent.

2.0 (991009) Cleaned up a few things, corrected some
  documentation. The response header is no longer stored in the cache
  file it is in the hashtable so we can access without reading
  files. Fixed some troubles with ImageSender so from now on we dont
  rewrite the converted image.

2.0b (991005) This is a total rewrite of most things. RabbIT is now a
  totally filtering proxy with http header filters and contenthandlers
  all to make it easier to extend. This version should be HTTP/1.1
  compatible (mostly :-). Speed should be the same, codesize is
  about the same. Config file format has changed to allow greater
  flexibility. Filtering of content is now done depending on the mime
  type of the document being loaded. Accessfilters are tightend to
  make RabbIT even less vounorable to attacks. RabbIT is mostly
  developed under jdk1.2 but should still work with jdk1.1 (although
  you may have to compile it several times for it to work out all
  dependencies). All packages have been renamed to
  rabbit.xxx. Basically they should be named something like
  org.rabbitproxy.xxx (rabbit.org is already taken :-/) but I havent
  bothered to registering a domain yet. 


1.8 (990403) New filtermodel, this affects current configurations but
makes RabbIT more accurate with advertising. Made RabbIT handle 
request to http://<proxyhost>:<proxyport>/ as metapages. This makes
the jconfig always work (If it couldnt resolv the host proxy it used
to fail). A lot of codecleanup due to new filtermodels.

1.7 (990224) Fixed a few bugs where RabbIT thrashed blank.gif and
other small size images. Made the ImageSender send the original image
if the converted one is bigger (will still log the converted size so
you can find out how often this happen). Added a filter that makes ads
in layer be excahnged with the file AdFilter uses.

1.6 (990121) The step to NCache is now totally complete. Small changes
to the cache that should make it even better. Better system for
errordetection and errorhandling. RabbIT now tells you that it has
problems and what the problem is in a nice manner. Bugfixes.

1.5 (981214) The cache is rewritten to the new much improved
NCache. This should improve cacheing and make the proxy more
stable. Updated errorpages to use HTMLPage layout so we get a
consistent interface to the proxy. Added JConfig a new configuration
applet. Saves config back to disk. Configuration of users and
accesslist is possible. Bugfixes of course. Don't cache pages with
cookie passwords (like hotmail uses).

1.4 (981116) Accesslog is now in (almost) Common Log Format so most
webanalysers should work. Logging has spread out to keep it with as
much info as possible.  Runtime configuration is working (although you
cant save it back to disk. Updated xyzStatus pages to handle full
html-output, this means that Proxy and Cache dont have to deal with
html-output, which is nice cause they have nothing to do with
it. CodeCleanup in general and some more thought of general rules for
the proxy. Added HTMLPage to make metapages look alike and be
configurable. 

1.3 (981021) Accesscontrol should now work, but is untested. Fixed a
bug in HTTPHeader that caused troubles with non-forgiving
webservers. Many pages that didnt work are now working.
BackgroundFilter now also handles stylesheet-specified backgrounds.

1.2 (980817) Filters are now fully configurable from the file
filter.conf. Rewrote Config-handling. Rewrote filter setup-routines to
handle the new filter.conf. Config-files moved to conf/ as standard.

1.1 Fixed Meta-page handling. Metapages are now behind
authentication. Added a userfile to keep the authenticated
users. Rewrote the basic idea of how a response is generated. Wrote
the metapagehandlers to supply the basic things found in 1.0.

1.0 First stable version released.
