From 42ffb2ed151814c2f53f0316b8bee2f4ab6966b8 Mon Sep 17 00:00:00 2001 From: drbrain Date: Thu, 2 Feb 2012 23:17:24 +0000 Subject: * lib/webrick.rb: Moved proxy rewriting to WEBrick::HTTPProxy. * lib/webrick/httpproxy.rb: Add examples of creating a proxy server and response rewriting using HTTPProxy. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/webrick.rb | 5 ++--- lib/webrick/httpproxy.rb | 30 +++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/webrick.rb b/lib/webrick.rb index 842bda21ef..f295e6e7aa 100644 --- a/lib/webrick.rb +++ b/lib/webrick.rb @@ -129,9 +129,8 @@ # # trap 'INT' do proxy.shutdown end # -# Proxies may modifier the content of the response through the -# +:ProxyContentHandler+ callback which will be invoked with the request and -# respone after the remote content has been fetched. +# See WEBrick::HTTPProxy for further details including modifying proxied +# responses. # # == Basic and Digest authentication # diff --git a/lib/webrick/httpproxy.rb b/lib/webrick/httpproxy.rb index 33ce17b2d4..e7226a0a6c 100644 --- a/lib/webrick/httpproxy.rb +++ b/lib/webrick/httpproxy.rb @@ -35,6 +35,34 @@ module WEBrick ## # An HTTP Proxy server which proxies GET, HEAD and POST requests. + # + # To create a simple proxy server: + # + # require 'webrick' + # require 'webrick/httpproxy' + # + # proxy = WEBrick::HTTPProxyServer.new Port: 8000 + # + # trap 'INT' do p.shutdown end + # trap 'TERM' do p.shutdown end + # + # p.start + # + # See ::new for proxy-specific configuration items. + # + # == Modifying proxied responses + # + # To modify content the proxy server returns use the +:ProxyContentHandler+ + # option: + # + # handler = proc do |req, res| + # if res['content-type'] == 'text/plain' then + # res.body << "\nThis content was proxied!\n" + # end + # end + # + # proxy = + # WEBrick::HTTPProxyServer.new Port: 8000, ProxyContentHandler: handler class HTTPProxyServer < HTTPServer @@ -46,7 +74,7 @@ module WEBrick # request # :ProxyVia:: Appended to the via header # :ProxyURI:: The proxy server's URI - # :ProxyContentHandler:: Called with a request and resopnse and allows + # :ProxyContentHandler:: Called with a request and response and allows # modification of the response # :ProxyTimeout:: Sets the proxy timeouts to 30 seconds for open and 60 # seconds for read operations -- cgit v1.2.3