Revision history for Perl extension HTTP::Proxy

0.13 Wed Mar  3 17:36:31 CET 2004
        [ENHANCEMENTS]
        - CONNECT support (but only transparently...)
        - the client_headers() method (similar to hop_headers()) give
          the filters access to the proxy's LWP::UA Client-* headers
        - filters are applied on all supported methods by default
        [FIXES]
        - removed everything regarding control() and control_regex(),
          which were not used and confusing
        [TESTS]
        - tests for CONNECT support
        - tests for SSL support (not working yet)
        [EXAMPLES]
        - eg/adblock.pl    - a very simple adblocker
        - eg/trim.pl       - trims whitespace from HTML pages 
        - eg/javascript.pl - add any text right after <body>
        [DOCUMENTATION]
        - separate COPYRIGHT and LICENSE sections in all man pages

0.12 Thu Jan 22 23:54:03 CET 2004
        [ENHANCEMENTS]
        - send the error message to the client when the Proxy agent dies
          (usually because of a filter error)
        - the proxy now sends a X-Forwarded-For header by default
          (and the proxy method x_forwarded_for can toggle this)
        - the proxy method client_socket() gives access to the socket
          connected to the current client (the example in Changes for 0.10
          was wrong: one can get the IP address of the connected agent from
          inside a filter with $self->proxy->client_socket->peerhost)
        [FIXES]
        - do not block simultaneous connections when not forking
        - clean up the filter chain after the body-request filters
        - ensure the filter stack is reinitialised between requests
        [TESTS]
        - tests for X-Forwarded-For
        - test the proxy against http://diveintomark.org/tests/client/http/
        [EXAMPLES]
        - eg/post.pl   - outputs the URI and parameters of all POST requests
        - eg/logger.pl - outputs details of GET and POST requests

0.11  Fri Jan  2 17:02:08 CET 2004
        [ENHANCEMENTS]
        - setting maxchild to 0 prevents forking (Jim Cromie)
        - filters can now match on the query string
        - hop-by-hop headers and Max-Forwards headers are correctly supported
        - new mutators added to HTTP::Proxy: via, hop_headers, request,
          response
        - filters can now answer in place of the server, which allows
          for authorisation filters, cache (?) filters, etc.
        - new examples scripts: proxy-auth.pl
        [FIXES]
        - push_filter() now correctly supports several match criteria
        [TESTS]
        - all the Via: header tests are now in t/50via.t
        - t/50standard.t now checks headers for several request types
        - new tests:
          + t/51simple2.t - check response header filters with an actual proxy
          + t/61simple2.t - check response body filters with an actual proxy
        [INTERNALS]
        - new method _send_response_headers

0.10  Wed Nov 19 01:36:59 CET 2003

        *** MAJOR INTERFACE CHANGES ***

        - new base classes HTTP::Proxy::HeaderFilter and
          HTTP::Proxy::BodyFilter
        - some useful built-in filter classes:
          HTTP::Proxy::BodyFilter::htmlparser
          HTTP::Proxy::BodyFilter::htmltext
          HTTP::Proxy::BodyFilter::lines
          HTTP::Proxy::BodyFilter::simple
          HTTP::Proxy::BodyFilter::tags
          HTTP::Proxy::HeaderFilter::simple
          HTTP::Proxy::HeaderFilter::standard
        - tests for the internal class HTTP::Proxy::FilterStack
        - tests for the built-in filters
        - the examples are up-to-date with the new interface 
        - new/enhanced accessors:
          + the proxy host() attribute becomes actually useful: by default,
            the proxy is only usable by local user-agents (the socket
            is bound to localhost)
          + the filters proxy() accessor gives access to the proxy itself.
            For example, one can get the IP address of the agent connected
            to the proxy from inside a filter ($self->proxy->daemon->peerhost)
        - many documentation changes

        This version is NOT compatible with the previous ones
        regarding the way filters work.

        *** MAJOR INTERFACE CHANGES ***

0.09  Fri Aug 15 21:12:17 CEST 2003
        - maxserve is now correctly handled
        - corrected a bug in the t/20keepalive.t test file that
          made the tests fail on some machines

0.08  Thu Mar 13 01:41:42 CET 2003
        - cleaned up support for filters
        - added support for "buffering" filters
          and a new HTTP::Proxy::FilterStack class
        - added an anonymiser script (eg/anonymiser.pl)
        - the tests won't break if a local proxy is configured
        - the interfaces are very likely to change soon

0.07  Tue Feb 18 22:30:43 CET 2003
        - the proxy now supports persistent connexions (Yay!)
        - and tests to check for it
        - and a new timeout accessor

0.06  Mon Feb 17 00:21:37 CET 2003
        - better forking system and better reaping of zombies
          (thanks to David Landgren and Stéphane Payrard)
          Still won't work under Windows, though :-(
        - replaced verbose() by logmask(), so as to fine-tune
          the logging system
        - put some of the test functions in a test module (t::Utils)

0.05  Tue Feb  4 00:47:23 CET 2003
        - explicitly refuse CONNECT
        - better support for TRACE method
        - support the Via: Header (a MUST in RFC 2616)
        - filters, but this needs more work

0.04  Sat Nov 30 12:19:22 CET 2002
        - accept connection from other hosts
        - better ftp support (no test yet)
        - basic gopher support (no test yet)
        - better HTTP error handling
        - use CRLF in HTTP headers

0.03  Fri Nov 29 11:17:36 CET 2002
        - url() method gives a url to reach the proxy
        - new 'control' attribute defines the control URL
        - better subprocess management by preforking child processes
          (thanks to Eric Cholet)
        - a children handles only one request at a time, for better
          performance (this means we only do HTTP/1.0 for now)
        - correctly handle the Proxy-Connection and Connection headers

0.02  Thu Oct 24 23:45:08 CEST 2002
        - the system now forks to handle several connections
        - but needs better test suites

0.01  Tue Oct  1 11:54:07 CEST 2002
        - original version