summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-08-03 10:33:18 -0500
committerJoshua Peek <josh@joshpeek.com>2009-08-03 12:25:57 -0500
commit488cf8091bb5d0262c784da40fa2b60d874e7303 (patch)
tree0a74f5e1a9293c87d2a708c703d2b6f59cc29b52
parent9a1e52b240be1e8cb62989739fba4d7e46681a1d (diff)
downloadrack-488cf8091bb5d0262c784da40fa2b60d874e7303.tar.gz
Return an empty string for Request#host if HTTP_HOST and SERVER_NAME are both missing
-rw-r--r--lib/rack/request.rb2
-rw-r--r--test/spec_rack_request.rb5
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/rack/request.rb b/lib/rack/request.rb
index be534a85..2f64bd6c 100644
--- a/lib/rack/request.rb
+++ b/lib/rack/request.rb
@@ -65,7 +65,7 @@ module Rack
def host
# Remove port number.
- (@env["HTTP_HOST"] || @env["SERVER_NAME"]).gsub(/:\d+\z/, '')
+ (@env["HTTP_HOST"] || @env["SERVER_NAME"]).to_s.gsub(/:\d+\z/, '')
end
def script_name=(s); @env["SCRIPT_NAME"] = s.to_s end
diff --git a/test/spec_rack_request.rb b/test/spec_rack_request.rb
index 7e4be775..74e2f00a 100644
--- a/test/spec_rack_request.rb
+++ b/test/spec_rack_request.rb
@@ -37,6 +37,11 @@ context "Rack::Request" do
req = Rack::Request.new \
Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org:9292")
req.host.should.equal "example.org"
+
+ env = Rack::MockRequest.env_for("/")
+ env.delete("SERVER_NAME")
+ req = Rack::Request.new(env)
+ req.host.should.equal ""
end
specify "can parse the query string" do