HTTP-Proxy

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    - closed RT tickets #3184 and #20251 (chunked encoding was enforced
      while transfering data between a client and server using
      different versions of HTTP, causing unwanted garbage to appear
      in the data)
    - removed useless "ERROR: Getting request failed:" messages
      when there are simply "No more requests from this connection"
    [INTERNALS]
    - Removed the HTTP::Proxy::FilterStack class from inside HTTP::Proxy
      and put it in its own module file
    - renamed HTTP::Proxy::FilterStack::active() as will_modify() for
      consistency reasons
    [TESTS]
    - updated t/22http.t and t/23connect.t following Ken Williams'
      recommandations in RT ticket #19986
    [DOCUMENTATION]
    - patched a small inconsistency in HTTP::Proxy::BodyFilter's
      documentation (and closed RT ticket #20303)
    - fully documented HTTP::Proxy::FilterStack

0.19 Fri Apr 28 19:55:41 CEST 2006
    [ENHANCEMENTS]
    - HTTP::Proxy::HeaderFilter::simple now lets one define an
      end() method as well
    [FIXES]
    - HTTP::Proxy::(Body|Header)Filter::simple now provide a default
      filter() that does nothing if their constructor is not given one
      (thanks to Merijn Brand)
    - close RT ticket #14548 by correcting the 'filename' check
      in HTTP::Proxy::BodyFilter::save (Max Maischein)
    - ERROR messages are always logged (Mark Tilford)
    [TESTS]
    - more tests for log() and logmask() in t/11log.t

0.18 Sun Mar 19 23:49:38 CET 2006
    [ENHANCEMENTS]
    - the new known_methods() method can return all method
      names know to HTTP::Proxy (can be helpful with the
      method parameter of push_filter())
    [FIXES]
    - close RT ticket #14898 by using a per-parent lockfile for
      HTTP::Proxy::Engine::ScoreBoard (Chris Dolan)
    - close RT ticket #18243 by adding missing DeltaV methods
      (Stephen Steneker)
    [EXAMPLES]
    - eg/perlmonks.pl   - redirect perlmonks.com to perlmonks.org

0.17 Wed Sep 28 23:25:17 CEST 2005
    [ENHANCEMENTS]
    - Thanks to Randal Schwartz, a new HTTP::Proxy::Engine::ScoreBoard
      engine is available. I've benchmarked a twofold speed increase.
      This engine is still beta, you must enable it by hand.

0.16  Thu Sep  1 19:13:55 CEST 2005
    [ENHANCEMENTS]
    - the new HTTP::Proxy::Engine class and its subclasses
      now handle the life and death of child processes
    - the Content-Length header is now removed only if body
      filters will be applied on the response body
    - HTTP::Proxy now supports some Apache-like attributes
      (start_servers, max_clients, max_requests_per_child,
      min_spare_servers, max_spare_servers, keep_alive,
      max_keep_alive_requests, keep_alive_timeout)
    - added support for ALL WebDAV/DeltaV methods
    - the query argument to push_filter(), added in 0.14, should
      now work (thanks to Simon Cozens for spotting the problem)
    - the proxy now has a stash, which is a hash where filters can
      store data (possibly to share it). (Requested by Mark Fowler)
      Warning: since the proxy forks for each TCP connection, the
      data is only shared between filters in the same child process.
    [DEPRECATION]
    - the maxchild, maxconn and maxserve accessors are now
      deprecated. They will disappear in the future:
      + maxchild has no replacement (should be handled by the engine)
      + maxconn becomes max_connections
      + maxserve becomes max_keep_alive_requests
    - Information regarding the way the engine should behave
      must passed in the constructor or directly to the engine
    [NEW METHODS]
    - $proxy->engine() return the HTTP::Proxy::Engine instance
    - $proxy->new_connection() increase the TCP connections counter
      (should only be used by HTTP::Proxy::Engine object)
    [FIXES]
    - Makefile.PL was not playing nice with Build.PL in the
      previous distributions. This has been fixed. Sorry for the
      inconvenience
    - no more annoying "getsockname() on closed socket GEN0"
      warnings (they appeared in 0.14)
    [Win32 SUPPORT]
    - Win32 is now supported! badly supported, but supported...
    - until someone writes a decent engine for Win32, the default
      Win32 engine will be HTTP::Proxy::Engine::NoFork, which
      can only handle a single TCP connection at a time
    [EXAMPLES]
    - eg/yahoogroups.pl - removes ad interruptions from Yahoo! Groups
    - eg/https.pl       - peek/poke at encrypted web pages
    - eg/logger.pl      - improved the logger script

0.15  Tue Apr  5 21:17:40 CEST 2005
    [ENHANCEMENTS]
    - added support for WebDAV methods (requested by Christian Laursen)
    - The filter selection is based on the original request and response,
      as it should
    - improved kwalitee
    [DEPRECATION]
    - the start() method is no longer supported in HTTP::Proxy::BodyFilter
      subclasses. Use begin() instead.
    [EXAMPLES]
    - eg/pdf.pl    - save \.pdf files and send a HTML confirmation instead
                     (idea by Emmanuel Di Prétoro)

0.14  Tue Mar 29 11:40:51 CEST 2005
    [ANNOUNCE]
    - It's been more than a year since last release, which is bad.
      I now plan to release new versions more often, maybe about
      once a month, or when there are big changes.
    [DEPRECATION]
    - the start() method of HTTP::Proxy::Bodyfilter subclasses
      is renamed begin(), since it now has an end() counterpart.
      (On a related note, I improve my English. Be sure to check out
      http://www.landgren.net/perl/lt-2004.html for details)
    - start() in filters is therefore declared deprecated, an error
      message is logged. The start() method will not be called any
      more as from 0.15.
    - the FILTER constant is now named FILTERS. FILTER will disappear
      in 0.15 as well.
    [ENHANCEMENTS]
    - subclasses of HTTP::Proxy::BodyFilter can now have a
      finalisation method, named end()
    - the start^Wbegin() method of HTTP::Proxy::BodyFilter subclasses
      now receive the message as an argument
    - new built-in filter: HTTP::Proxy::BodyFilter::save
      that can save the message body to a file while browsing
    - new built-in filter: HTTP::Proxy::BodyFilter::complete
      that stores the message body in memory and passes it on to the
      next filters only when it's complete

Changes  view on Meta::CPAN

    - 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



( run in 0.310 second using v1.01-cache-2.11-cpan-71847e10f99 )