diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2007-02-18 16:32:05 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2007-02-18 16:32:05 +0000 |
commit | 109d4ac95443421da93bbad1d02e949429362221 (patch) | |
tree | 438211bf8c4cb207ae5751fcfa25c0da1f2f3d48 /actionpack/lib | |
parent | c9260c556ca5e238225de23bf2fd2cf21400f8aa (diff) | |
download | rails-109d4ac95443421da93bbad1d02e949429362221.tar.gz rails-109d4ac95443421da93bbad1d02e949429362221.tar.bz2 rails-109d4ac95443421da93bbad1d02e949429362221.zip |
Allow people to set their own etags, if they want more control over the process (closes #7580) []
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6163 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib')
-rwxr-xr-x | actionpack/lib/action_controller/base.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb index 524d11de50..ecbe15bada 100755 --- a/actionpack/lib/action_controller/base.rb +++ b/actionpack/lib/action_controller/base.rb @@ -653,7 +653,7 @@ module ActionController #:nodoc: # # Rendering will automatically insert the etag header on 200 OK responses. The etag is calculated using MD5 of the # response body. If a request comes in that has a matching etag, the response will be changed to a 304 Not Modified - # and the response body will be set to an empty string. + # and the response body will be set to an empty string. No etag header will be inserted if it's already set. # # === Rendering a template # @@ -879,7 +879,7 @@ module ActionController #:nodoc: if text.is_a?(String) if response.headers['Status'][0..2] == '200' && !response.body.empty? - response.headers['Etag'] = %("#{Digest::MD5.hexdigest(text)}") + response.headers['Etag'] ||= %("#{Digest::MD5.hexdigest(text)}") if request.headers['HTTP_IF_NONE_MATCH'] == response.headers['Etag'] response.headers['Status'] = "304 Not Modified" |