X-Git-Url: https://code.delx.au/cgiproxy/blobdiff_plain/9a1c573100b944eec9b5e55d95360d11182d5376..aa63ee0d8fd66d6305ae6e4c62c491bb148c9b52:/ruby/proxy.rb diff --git a/ruby/proxy.rb b/ruby/proxy.rb index 6f98be7..11b14d2 100755 --- a/ruby/proxy.rb +++ b/ruby/proxy.rb @@ -40,8 +40,10 @@ def createRequest(method, path) return req end -def insertHeaders(req) - req["X-Forwarded-For"] = ENV["REMOTE_ADDR"] +def insertHeaders(req, ffHeader) + if ffHeader + req["X-Forwarded-For"] = ENV["REMOTE_ADDR"] + end req["Host"] = ENV["HTTP_HOST"] req["Cookie"] = ENV["HTTP_COOKIE"] req["Referer"] = ENV["HTTP_REFERER"] @@ -74,13 +76,8 @@ def printResult(res) if res.code != "200" res["Status"] = "#{res.code} #{res.message}" end - res.each_capitalized do |key, value| - if key == "Set-Cookie" - values = value.split(",") - else - values = [value] - end - values.each do |value| + res.each_capitalized_name do |key| + res.get_fields(key).each do |value| print "#{key}: #{value}\r\n" end end @@ -94,10 +91,10 @@ def debug(msg) } end -def proxyTo(basePath) +def proxyTo(basePath, ffHeader=True) host, port, path = getParams(basePath) req = createRequest(ENV["REQUEST_METHOD"], path) - insertHeaders(req) + insertHeaders(req, ffHeader) res = doRequest(req, host, port) printResult(res) end