aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/request.rb
diff options
context:
space:
mode:
authorHongli Lai (Phusion) <hongli@phusion.nl>2008-09-04 23:01:40 +0200
committerHongli Lai (Phusion) <hongli@phusion.nl>2008-09-04 23:01:40 +0200
commitc480c1db1f302ab28a255c5423326e51d27ec5ed (patch)
treeac2afe4deb5ea436d53e421c14650bc627480f45 /actionpack/lib/action_controller/request.rb
parent08704c442d15b16511214731dd94108b737ef407 (diff)
parentd7bd01f543d18e37f9c353d847bda3456bc337c3 (diff)
downloadrails-c480c1db1f302ab28a255c5423326e51d27ec5ed.tar.gz
rails-c480c1db1f302ab28a255c5423326e51d27ec5ed.tar.bz2
rails-c480c1db1f302ab28a255c5423326e51d27ec5ed.zip
Merge branch 'master' of git@github.com:lifo/docrails
Diffstat (limited to 'actionpack/lib/action_controller/request.rb')
-rwxr-xr-x[-rw-r--r--]actionpack/lib/action_controller/request.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/actionpack/lib/action_controller/request.rb b/actionpack/lib/action_controller/request.rb
index 185518761d..8e6cfb41dc 100644..100755
--- a/actionpack/lib/action_controller/request.rb
+++ b/actionpack/lib/action_controller/request.rb
@@ -102,7 +102,7 @@ module ActionController
def if_modified_since
if since = env['HTTP_IF_MODIFIED_SINCE']
- Time.rfc2822(since)
+ Time.rfc2822(since) rescue nil
end
end
memoize :if_modified_since
@@ -199,10 +199,12 @@ module ActionController
# delimited list in the case of multiple chained proxies; the last
# address which is not trusted is the originating IP.
def remote_ip
- if TRUSTED_PROXIES !~ @env['REMOTE_ADDR']
- return @env['REMOTE_ADDR']
- end
+ remote_addr_list = @env['REMOTE_ADDR'] && @env['REMOTE_ADDR'].split(',').collect(&:strip)
+ unless remote_addr_list.blank?
+ not_trusted_addrs = remote_addr_list.reject {|addr| addr =~ TRUSTED_PROXIES}
+ return not_trusted_addrs.first unless not_trusted_addrs.empty?
+ end
remote_ips = @env['HTTP_X_FORWARDED_FOR'] && @env['HTTP_X_FORWARDED_FOR'].split(',')
if @env.include? 'HTTP_CLIENT_IP'