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