diff options
author | James Tucker <jftucker@gmail.com> | 2013-02-06 17:40:34 -0800 |
---|---|---|
committer | James Tucker <jftucker@gmail.com> | 2013-02-07 18:33:03 -0800 |
commit | 3fc34cd2a8e89f7ec443f600fca1b5d0b1d523b1 (patch) | |
tree | 19a12cadf3eec2dcc679242776a7c2a880eda3ad | |
parent | 71ce52cc7a7ecbbaa7c3db98ef6455de6c0aaca2 (diff) | |
download | rack-3fc34cd2a8e89f7ec443f600fca1b5d0b1d523b1.tar.gz |
Fix a bug where host matching occurs out of order
* Closes #504
-rw-r--r-- | lib/rack/urlmap.rb | 3 | ||||
-rw-r--r-- | test/spec_urlmap.rb | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/rack/urlmap.rb b/lib/rack/urlmap.rb index d3b95a5c..d301ce9b 100644 --- a/lib/rack/urlmap.rb +++ b/lib/rack/urlmap.rb @@ -13,6 +13,7 @@ module Rack class URLMap NEGATIVE_INFINITY = -1.0 / 0.0 + INFINITY = 1.0 / 0.0 def initialize(map = {}) remap(map) @@ -35,7 +36,7 @@ module Rack [host, location, match, app] }.sort_by do |(host, location, _, _)| - [host ? -host.size : NEGATIVE_INFINITY, -location.size] + [host ? -host.size : INFINITY, -location.size] end end diff --git a/test/spec_urlmap.rb b/test/spec_urlmap.rb index a2ad5d1a..316c7254 100644 --- a/test/spec_urlmap.rb +++ b/test/spec_urlmap.rb @@ -110,7 +110,7 @@ describe Rack::URLMap do res = Rack::MockRequest.new(map).get("http://foo.org/") res.should.be.ok - res["X-Position"].should.equal "default.org" + res["X-Position"].should.equal "foo.org" res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "example.org") res.should.be.ok |