FilterProxy 0.30:
  * Ripped out Parse::ePerl, replaced it with HTML::Mason
  * Converted all html files to work under HTML::Mason.  The module interface
    has changed.  See Skeleton.html for details.
  * Fixed bug when deleting last user (disable auth if no users)
  * Fixed Source.pm to properly handle redirects.
  * Fixed Auth bug with server (when using Source module to view source of
    FilterProxy config pages)
  * Workaround for bogus error messages from libwww or perl 5.6 (more likely)
    with 500 status codes.  This bug causes it to always sends a message with 
    "(Timeout)" even when event is not a timeout.
  * Don't do any filtering on 3XX responses.  Some servers erroneously send 
    headers for the target of the redirection, in the redirect.  (Makes 
    FilterProxy::Compress fail for instance)
  * New feature: "Show how this page was filtered", using cgi, request the url:
    http://localhost:8888/Rewrite.html?showfiltering=<url> where <url> is replaced
    by some (escaped) URL.  See the Rewrite config page for a javascript bookmark
    that does this.
  * New matcher: whitespace.  As in "add whitespace", will add in whitespace as
    well as whitespace-like tags <p>, <br>, <hr>, &nbsp;, <!-- ... -->.
  * Fix YAHOO_UNNAMED rule bugs
  * New qualifying predicate: preceeding.  Takes a matcher as an argument, and
    the existing match must preceede the new match or the whole match will fail.
    (see the YAHOO_TABLE rule for an example)
  * Fix Rewrite to accept m//x formatted regexes.  (You can add whitespace to
    your regex by putting (?x) at the beginning -- it's the same as m//x --
    check man perlre)
  * Added whitespace formatting to really long rules (ADS).
  * Fixed Basic Authentication through proxy.
  * Added XSLT module from Mario Lang <lang@zid.TUGraz.at>
  * Changed module loading to be less spammy in failure case.
  * Implemented sending 304 (Not Modified) for non-html content in server.
  * javascript bookmarks on /index.html

FilterProxy 0.29.2:
  * Fixed problems with Transfer-Encoding.  Mozilla 0.9 still doesn't dig 
    Transfer-Encoding.  (not sure how this bug crept in...!)
  * Fixed server handling to use gethostbyname rather than comparing hostnames
    as a string.  (i.e. now loading config pages by a url with numeric ip or 
    non-FQDN will work)
  * Editing FilterProxy.pl to specify your hostname is no longer necessary.  It
    will be grabbed from the "hostname" command, or be set to "localhost" if the
    localhostonly option is enabled.
  * When localhostonly is enabled, FP only binds to localhost (127.0.0.1) and
    not any other interfaces.  You must tell your browser the proxy is on
    'localhost' (or '127.0.0.1').  FP is not visible to the outside network.
    FP must be restarted if this option is changed.  (++security with 
    localhostonly)
  * README and INSTALL updates.
  * Source.pm module thanks to John Waymouth <waymouth@wpi.edu>
  * Fixed 'inside' behavior to not change the match when successful.  Use
    'inside tagblock ... add encloser ...' to get the old behavior.
  * Added Rewrite hints (Rewrite.html) for running Rewrite.pm from command line,
    and using Source module to get the unfiltered source for a page.
  * Moved "dump headers to log file" in Header module to global config, rather
    than site-specific.
  * BIG RED WARNING message added if you try to remove Header from .*.
  * Modules are now loaded by looping over them and eval'ing them.  If one
    fails to load, FilterProxy still loads fine.  In particular, if 
    dependencies aren't satisfied for one (Compress, ImageComp), then it isn't
    loaded.
  * Workaround for Mozilla bug 92915.
  * Strip HTTP/1.1 headers in outgoing request: Keep-Alive, Proxy-Connection.
  * New Matcher: 'leader' -- works like 'tag' but searches backwards (use as an
    argument to 'add')

FilterProxy 0.29.1:
  * Fixed Rewrite bug when using 'attrib' and 'rewrite'.
  * Fixed Rewrite bug when using 'attrib', and attrib has no value.
  * Fixed Rewrite bug when using 'inside' predicate.
  * Minor error message clarification.

FilterProxy 0.29:
  * Fixed Netscape.  HTTP handling separated into 3 cases: HTTP/1.1, HTTP/1.0, 
    Netscape keep-alive hack.  (big speed up)  Note: recent (March) builds of 
    Mozilla only send 1 request per connection (and very recent builds NEVER
    close the connections -- resulting in hundreds of left-hanging FilterProxy
    processes.  This is a mozilla bug.  I'll file a bug as soon as bugzilla
    comes back up)
  * Updated BUGS file.
  * More helpful ERROR messages from Rewrite, check $CONFIG->{timing} before
    doing timing measurements.  (should speed things up)
  * Removed lots of debug statements for components that work well (DeAnim)
    (should speed things up)
  * New, more powerful, more intuitive Rewrite syntax.
  * New "Conditional Predicates" for Rewrite rules: 'inside' and 'containing'
  * HTTP protocol fixes (again)
  * Fixed Rewrite hang (seen with YAHOO rules), fixed yahoo rules.
  * Rewrite rules now impervious to newlines in spec.
  * Removed explicit HTTP parameter (with correct HTTP/1.1 implementation,
    Konqueror works properly)
  * Can now access config pages when not using proxy.  (everyone should be
    using authentication)
  * LICENSE removed, comments in it -> README, added GPL disclaimer to top
    of FilterProxy.pl and modules.

FilterProxy 0.28:
  * Updates to TE/Transfer-Encoding implementation: FilterProxy now sends the
    TE header if Compress is enabled, properly handle gzip compressed content
    sent with the Transfer-Encoding header, detect TE from browser and use 
    Transfer-Encoding instead of Content-Encoding if present.
  * Fix for Compress: no longer writes temporary files since Compress::Zlib
    now has memGunzip (as of 1.10).  Detects Compress::Zlib version and will
    bomb with error if version is old.
  * Added support for BASIC Authentication in upstream proxy.  (explicit parameter)
    Upstream proxy auth will also work now if FilterProxy auth is disabled.
  * Checked rfc2616 compliance WRT 'Connection'/'Proxy-Connection' headers.  (again)
    * Added Via header
    * HTTP/1.1 clients will no longer close connection early (Mozilla)
  * Moved all header mangling into Header module (as it should have been from 
    the beginning).  FilterProxy WILL NOT FUNCTION IF YOU DISABLE THE HEADER MODULE!
  * This release BREAKS WITH NETSCAPE.  Hold your horses for 0.29 if you will be
    using FilterProxy and Netscape.

FilterProxy 0.27:
  * Enabled hack that will send HTTP/1.1 responses to Netscape 4.x (even though
    Netscrape claims to be a HTTP/1.0 client -- it seems to work and is faster)
  * Fixed problem with fp losing track of its children, SIGCHLD errors, and crasher!
    YES, Crasher is finally !*%$#($!@@ fixed!  No more SEGV!
  * Fixed adding/deleting/changing nameless Rewrite rules.
  * Clarification of $order, $req, $res in Skeleton.pm
  * RPM spec file changes thanks to David MacKenzie <djm@web.us.uu.net>
  * Applied patch from Richard Tibbetts <tibbetts@MIT.EDU> to restrict proxy
    to only accept connections from localhost.
  * Ad rule updates (as usual...)
  * Transfer-Encoding now properly looks for TE: in request (as per 14.39 of RFC 2616)
    thanks <clarence@clarence.de>.  If anyone knows a browser that can use this,
    please let me know.

FilterProxy 0.26:
  * Fixed enabling of password authentication via CGI (FilterProxy.html)
  * Fixed deleting/adding of rules with similar names in Rewrite.pm
  * 'Hints' added for writing Rewrite rules in Rewrite.html
  * More header parsing and HTTP/1.0 - HTTP/1.1 confusion fixes.
  * Debian required package names added to INSTALL.
  * Rearranged handle_proxy to fix headers-in-page and a few other bugs.
  * We now send HTTP/1.1 responses to client in chunked encoding.  (Fixes Konqueror)
    Netscape no longer keeps the connection open.  (nutscrape uses a hodgepodge 
    of HTTP/1.0 and HTTP/1.1 -- FilterProxy is now am strict WRT HTTP/1.0)  
    Everyone go get Mozilla (http://www.mozilla.org) it's much better than Netscape.
    Someone tell me if IE works.
  * explicit HTTP version parameter (fix problems with some proxies). 
  * Fixed crasher (Segfault) bug related to bad values passed to sockaddr_in 
    (maybe) (i think) (maybe not...happened again today...)
  * Fixed "Read buffer not empty" error (and page-load hangs caused by it)
  * Compatibility verified with Konqueror, StarOffice.  I recommend that all 
    users upgrade their browsers to Mozilla, Konqueror, StarOffice.  I'm sick 
    of chasing Netscrape bugs.  :(
  * Added option for Compress module to use Transfer-Encoding instead of 
    Content-Encoding.  (fixes ambiguity -- did file originally have compression,
    as in .tar.gz, or was it compressed by the proxy?)  No browser supports
    this yet, but it's defined in rfc2616 (aka HTTP/1.1).  See bug for Mozilla: 
    http://bugzilla.mozilla.org/show_bug.cgi?id=59464

FilterProxy 0.25:
  * Numerous ad rule updates.
  * DeAnim module completed. (turn OFF debug to avoid spammy log output)
  * Fixed Content-Length when content has been modified.
  * Changed timing messages to only display 5 decimal places.
  * Added basic proxy authentication.  This can be disabled (and is by default)
    from the main FilterProxy config page.  Note that HTTP Basic authentication
    is NOT secure, and anyone listening on the network between your browser and
    the proxy can intercept your password.
  * Rewrote/improved config pages.  Now more consistent.

FilterProxy 0.24:
  * Turned Taint on, fixed a few warnings (how to get my module dir into @INC?)
    monitor log file for taint errors.
  * Applied patch from Seth Golub <seth@aigeek.com> (BEGIN blocks)
  * Applied patch from Vineet Kumar <vineet@doorstop.net> (transparent proxying)
  * Applied patch from Vladimir N Goncharov <vovva@chat.ru> (upstream proxies)
  * Fixed hang bug when ads are inside comments.  (addbal at beginning of 
    document with open comment...)
  * Turned taint off...
  * changed mime-type for content with no content-type header from 
    application/octet-stream to text/html (should this be configurable, or
    is it so rare that no one would notice?)
  * Fixed connection bug for HTTP/1.0 clients.  (This is a Netscape bug: see 
    BUGS file)

FilterProxy 0.23:
  * Rewrite: Fixed printing of statistics for last filter.
  * Rewrite: Fixed some code related to finding tag attribs.  
      (WEBBUGS works again)
  * Made FilterProxy pass an environment to ePerl parsed .html that is 
      CGI/1.1 compliant
  * Fixed Rewrite WRT intelligently obeying comments in HTML.  (fixes many
      javascript-mangling errors)
  * Fixed Rewrite regex matcher when regex matches, but match is empty.
  * Fixed Rewrite algorithm for grabbing the value of a tag.
  * Fixed Rewrite tag finder when (successful) match is at beginning of content.
  * Numerous Rewrite rule updates for new and weird ads. (tripod popups)
  * Fixed 'Argument "CHLD" isn't numeric in entersub' warning (FINALLY!)
  * Several speedups on Rewrite (~4x faster now!)

FilterProxy 0.22:
  * Rewrite: Fixed hang on some pages related to -addalt modifier.

FilterProxy 0.21:
  * Fixed subtle bug when server sends back an empty response.
  * Header now handles headers for server
  * Orders processed in absolute value order, so order 7 should do the same
    thing to incoming content as -7 does to outgoing content.
  * Now preserves User-Agent header -- fixes 'browser detection' on many web 
    pages. (but not all)  You can still filter this out with the Header module.
  * Rewrite: attrib argument to tag finder can take regex now.
  * Rewrite: lowsrc won't mess up image finders anymore (require whitespce,attrib)
  * Tracked down many bugs, and found most of them were bugs in Netscrape, (grrr)
    added them to the BUGS file.
  * Header updates courtesy of John Conneely <john@figaro.org>
  * Fixed "400 URL must be absolute" problems.

FilterProxy 0.20:
  * Added different log levels (debug/info/error/timing) to trim log sizes.
  * Added option to BlockBanner.pm to strip a file on the command line. (for testing)
  * Rewrite module (moved adfinder.pl code to a module), extensively debugged it.
  * Added option to Rewrite.pm to strip a file on the command line
  * Added outgoing content orders (it's now possible to write modules to filter
    outgoing content -- i.e. form post data)
  * RPM spec courtesy of John Conneely <john@figaro.org>

FilterProxy 0.19:
  * Some problems with whitespace fixed, was grabbing <framset> as <frame> ad.
  * Using /x in BlockBanner regexps because they're so ugly
  * Problems in filtering order fixed (Header now gets incoming headers too)
  * Fixed logs to print perl errors/warnings
  * Header module can now add and remove arbitrary headers.  (still needs work)
  * Moved decompressing gzip encoded responses into Compress module.
  * Header.html added, with corresponding Config method.
  
FilterProxy 0.18:
  * -n really does work now (no daemonize)
  * logs requestor's IP (prelude to proxy-authenticification)
  * Rudimentary Header module
  * Modifications to support Header module (munging request as well as 
    response, a module can be called more than once per request)

FilterProxy 0.17:
  * Typos errors and bugs oh my!  (fixed)
  * Child no longer exits for server (config) requests. (this is a hack -- need
    Header module)
  * Added -n (no daemonize) option.
  * Documentation additions.
  * Setting the environment variable http_proxy will allow you to chain another
    proxy server.  (setenv http_proxy your.other.proxy:1234)
  * Fixes for small fonts and <blink>.  (doesn't involve FilterProxy) See:
      http://draal.physics.wisc.edu/FilterProxy/nofilter.html
  * Fixes in retry/timeout stuff.
  * Debug log now prints timestamp for each entry (as per request).

FilterProxy 0.16:
  * some command line options -k (kill), -f <config file> added and documented.
  * FilterProxy now daemonizes properly
  * adregexps really are case insensitive now. (oops)
  * (fix) Proxy-Connection: keep-alive fixes
  * (fix) config file reload-when change affects all children.

FilterProxy 0.15:
  * Thread support removed.  (Perls threads are incomplete, buggy, and it
    looks like they're just a wrapper for fork -- even in 5.6 they're
    incomplete)
  * (fix) Thread check bomb on startup. (again) is consequence of above...

FilterProxy 0.14:
  * Added a slew of known ad servers to default config.
  * (fix) Filtering/Debug enabled in FilterProxy config bug
  * (fix) properly ungzip's and filters gzip encoded content. (Via an ugly
    hack.  Why doesn't Compress::Zlib work properly?)  
  * (fix) properly downloads gzip encoded content.
  * (fix) Properly sends Proxy-Connection headers for 304 responses and 
    filtered content.
  * BlockBanner now recognizes <layer></layer> style ads
  * BlockBanner now recognizes <layer></layer><nolayer></nolayer> style ads.
  * BlockBanner now recognizes <ilayer></ilayer><nolayer></nolayer> style ads.
  * FilterProxy properly sends 0 length content (where whole file is an ad!)
    Hopefully new <layer> ad finder will prevent whole-file-ads from being
    downloaded in the first place.
  * Some problems with whitespace fixed.

FilterProxy 0.13:
  * Rewritten banner stripper now strips (some) javascript ads.
  * Extensive documentation additions.  (damn docs take a long time to write!)

FilterProxy 0.12:
  * Added request timeout -- if proxy doesn't receive a request in 5 minutes,
    it closes the connection.  (Only really makes a difference if your client
    sends 'Proxy-Connection: keep-alive' headers.)
  * Added a hack to recognize keep-alive headers (will process multiple CLIENT
    requests per connection, cannot process multiple outgoing requests per
    connection due to limitations in LWP::UserAgent)
  * Rearranged FilterProxy.html, added ability to delete individual modules
    from a site, add modules to an existing site without typing its regexp.
  * Extensive speed testing of banner stripping algorithms (to appear Real 
    Soon Now)

FilterProxy 0.11:
  * Fixed problem with thread check bombing (why didn't anyone report 
      this to me?)
  * Fixed hang in BlockBanner.

FilterProxy 0.10:
  * Converted Compress into a module.
  * Created html files for Skeleton, Compress

FilterProxy 0.09: (Not released)
  * Added order parameter for modules
  * Added mime_types parameter for modules
  * Created example module Skeleton
  * Made modules announce themselves to FilterProxy via FilterProxy::MODULES

FilterProxy 0.08: Idiot Fix
  * Forgot to include the html forms config files. (duh)

FilterProxy 0.07: Initial Release
