aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorbrainopia <ravwar@gmail.com>2010-12-09 18:38:52 +0300
committerSantiago Pastorino <santiago@wyeworks.com>2010-12-15 11:03:03 -0200
commit439c23dce33148064c258eaf6e79f9d4563c88a4 (patch)
treee6572953fed0e1db80a36e32e3f8108ff8399104 /actionpack/lib
parent17afec0ae3fe9d8895a7e030f6bfb8443ae83be1 (diff)
downloadrails-439c23dce33148064c258eaf6e79f9d4563c88a4.tar.gz
rails-439c23dce33148064c258eaf6e79f9d4563c88a4.tar.bz2
rails-439c23dce33148064c258eaf6e79f9d4563c88a4.zip
Fix edge cases for domain :all option on cookie store
Dont set explicit domain for cookies if host is not a domain name [#6002 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/middleware/cookies.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/cookies.rb b/actionpack/lib/action_dispatch/middleware/cookies.rb
index b0a4e3d949..f369d2d3c2 100644
--- a/actionpack/lib/action_dispatch/middleware/cookies.rb
+++ b/actionpack/lib/action_dispatch/middleware/cookies.rb
@@ -131,8 +131,11 @@ module ActionDispatch
options[:path] ||= "/"
if options[:domain] == :all
- @host =~ DOMAIN_REGEXP
- options[:domain] = ".#{$1}.#{$2}"
+ # if host is not ip and matches domain regexp
+ # (ip confirms to domain regexp so we explicitly check for ip)
+ options[:domain] = if (@host !~ /^[\d.]+$/) && (@host =~ DOMAIN_REGEXP)
+ ".#{$1}.#{$2}"
+ end
end
end