lib/terminus/proxy/external.rb in terminus-0.4.0 vs lib/terminus/proxy/external.rb in terminus-0.5.0
- old
+ new
@@ -1,34 +1,40 @@
module Terminus
class Proxy
-
+
class External < Rack::Proxy
+ attr_reader :uri
+
def initialize(uri)
@uri = uri
end
-
+
def rewrite_env(env)
env = env.dup
env['SERVER_NAME'] = @uri.host
env['SERVER_PORT'] = @uri.port
env['HTTP_HOST'] = "#{@uri.host}:#{@uri.port}"
env.delete('HTTP_ACCEPT_ENCODING')
-
+
if scheme = @uri.scheme
env['rack.url_scheme'] = scheme
end
-
+
+ if %w[PUT POST].include?(env['REQUEST_METHOD'])
+ env['CONTENT_LENGTH'] ||= '0'
+ end
+
env
end
-
+
def call(env)
dock_host = env['SERVER_NAME']
response = super
response[1].delete('transfer-encoding')
response[2].extend(Rewrite)
response[2].dock_host = dock_host
response
end
end
-
+
end
end