end
-def getParams(url)
+def get_params(url)
if !ENV["PATH_INFO"].empty?
url += ENV["PATH_INFO"]
end
return url.host, url.port, use_ssl, filename, path
end
-def createRequest(method, path, ffHeader)
+def create_request(method, path, ff_header)
if method == "GET"
req = Net::HTTP::Get.new(path)
elsif method == "POST"
raise RuntimeError, "No support for method: #{method}"
end
- if ffHeader
+ if ff_header
req["X-Forwarded-For"] = ENV["REMOTE_ADDR"]
end
req["Host"] = ENV["HTTP_HOST"]
return req
end
-def doProxy(req, host, port, use_ssl, filename, outputDir)
+def do_proxy(req, host, port, use_ssl, filename, output_dir)
# Make the request
http = Net::HTTP.new(host, port)
http.use_ssl = use_ssl
end
print "\r\n"
- out = File.open("#{outputDir}/#{filename}", 'w')
+ out = nil
+ if output_dir
+ out = File.open("#{output_dir}/#{filename}", 'w')
+ end
res.read_body do |chunk|
print chunk
- out.write chunk
+ if out
+ out.write chunk
+ end
end
end
end
}
end
-def proxyTo(basePath, ffHeader=True, outputDir=None)
- host, port, use_ssl, filename, path = getParams(basePath)
- req = createRequest(ENV["REQUEST_METHOD"], path, ffHeader)
- doProxy(req, host, port, use_ssl, filename, outputDir)
+def proxy_to(base_path, ff_header=True, output_dir=nil)
+ host, port, use_ssl, filename, path = get_params(base_path)
+ req = create_request(ENV["REQUEST_METHOD"], path, ff_header)
+ do_proxy(req, host, port, use_ssl, filename, output_dir)
end