Index: lib/mouseHole/proxyhandler.rb =================================================================== --- lib/mouseHole/proxyhandler.rb (revision 78) +++ lib/mouseHole/proxyhandler.rb (working copy) @@ -83,7 +83,7 @@ end path = env['path-info'].gsub("//#{env['server-name']}",'') uri = "http:#{env['path-info']}" - + referer = reqh["referer"] || "" header = [] choose_header(reqh, header) set_via(header) @@ -94,7 +94,7 @@ choose_header(resin, header) set_via(header) - page = Page.new(uri, resin.code, header) + page = Page.new(uri, resin.code, header, referer) if !DOMAINS.include?(env['server-name']) and @central.rewrite(page, resin) puts "** Rewriting #{page.location}..." Index: lib/mouseHole/page.rb =================================================================== --- lib/mouseHole/page.rb (revision 78) +++ lib/mouseHole/page.rb (working copy) @@ -16,8 +16,8 @@ end class Page - attr_accessor :location, :status, :headers, :converter, :document - def initialize(uri, status, headers) + attr_accessor :location, :status, :headers, :converter, :document, :referer + def initialize(uri, status, headers, referer) if uri.match(/[#{Regexp::quote('{}|\^[]`')}]/) uri = URI.escape(uri) end @@ -28,6 +28,7 @@ if ctype @converter = Converters.detect_by_mime_type ctype.split(';',2)[0] end + @referer = URI(referer) end # MrCode's gzip decoding from WonderLand! Also reads in remainder of the body from the