aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorPrem Sichanugrist <s@sikachu.com>2010-01-16 20:51:42 +0700
committerJosé Valim <jose.valim@gmail.com>2010-01-17 16:56:54 +0100
commiteb67532bc1c1ce5c494b71b980c04c8aa83efb74 (patch)
tree1098a72023ae0b0919b8894ed34dd8222da0a469 /actionpack
parenta0dc6cc70b694349a592b42ec3b58001ce82fec9 (diff)
downloadrails-eb67532bc1c1ce5c494b71b980c04c8aa83efb74.tar.gz
rails-eb67532bc1c1ce5c494b71b980c04c8aa83efb74.tar.bz2
rails-eb67532bc1c1ce5c494b71b980c04c8aa83efb74.zip
Make local_request? to returns true when facing ::1 IPv6 address [#3257 status:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/middleware/show_exceptions.rb4
-rw-r--r--actionpack/test/dispatch/show_exceptions_test.rb22
2 files changed, 14 insertions, 12 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/show_exceptions.rb b/actionpack/lib/action_dispatch/middleware/show_exceptions.rb
index 0977f5c60a..3bcd004e12 100644
--- a/actionpack/lib/action_dispatch/middleware/show_exceptions.rb
+++ b/actionpack/lib/action_dispatch/middleware/show_exceptions.rb
@@ -20,7 +20,7 @@ module ActionDispatch
# * :exception - The exception raised;
#
class ShowExceptions
- LOCALHOST = '127.0.0.1'.freeze
+ LOCALHOST = ['127.0.0.1', '::1'].freeze
RESCUES_TEMPLATE_PATH = File.join(File.dirname(__FILE__), 'templates')
@@ -118,7 +118,7 @@ module ActionDispatch
# True if the request came from localhost, 127.0.0.1.
def local_request?(request)
- request.remote_addr == LOCALHOST && request.remote_ip == LOCALHOST
+ LOCALHOST.any?{ |local_ip| request.remote_addr == local_ip && request.remote_ip == local_ip }
end
def status_code(exception)
diff --git a/actionpack/test/dispatch/show_exceptions_test.rb b/actionpack/test/dispatch/show_exceptions_test.rb
index 9f6a93756c..def86c8323 100644
--- a/actionpack/test/dispatch/show_exceptions_test.rb
+++ b/actionpack/test/dispatch/show_exceptions_test.rb
@@ -53,19 +53,21 @@ class ShowExceptionsTest < ActionController::IntegrationTest
test "rescue locally from a local request" do
@app = ProductionApp
- self.remote_addr = '127.0.0.1'
+ ['127.0.0.1', '::1'].each do |ip_address|
+ self.remote_addr = ip_address
- get "/"
- assert_response 500
- assert_match /puke/, body
+ get "/"
+ assert_response 500
+ assert_match /puke/, body
- get "/not_found"
- assert_response 404
- assert_match /#{ActionController::UnknownAction.name}/, body
+ get "/not_found"
+ assert_response 404
+ assert_match /#{ActionController::UnknownAction.name}/, body
- get "/method_not_allowed"
- assert_response 405
- assert_match /ActionController::MethodNotAllowed/, body
+ get "/method_not_allowed"
+ assert_response 405
+ assert_match /ActionController::MethodNotAllowed/, body
+ end
end
test "localize public rescue message" do