From f6b9b509b26f00ff12f59ef8d186e14e2947abd3 Mon Sep 17 00:00:00 2001 From: zedshaw Date: Thu, 3 Aug 2006 20:49:11 +0000 Subject: Dan Kubb's conditional response patch. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@299 19e92222-5c0b-0410-8929-a290d50e31e9 --- lib/mongrel/handlers.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'lib/mongrel/handlers.rb') diff --git a/lib/mongrel/handlers.rb b/lib/mongrel/handlers.rb index fede2db..dc18ba9 100644 --- a/lib/mongrel/handlers.rb +++ b/lib/mongrel/handlers.rb @@ -203,18 +203,18 @@ module Mongrel # Calculated the same as apache, not sure how well the works on win32 etag = Const::ETAG_FORMAT % [mtime.to_i, stat.size, stat.ino] - unmodified_since = request.params[Const::HTTP_IF_UNMODIFIED_SINCE] + modified_since = request.params[Const::HTTP_IF_MODIFIED_SINCE] none_match = request.params[Const::HTTP_IF_NONE_MATCH] # test to see if this is a conditional request, and test if # the response would be identical to the last response same_response = case - when unmodified_since && !last_response_time = Time.httpdate(unmodified_since) rescue nil : false - when unmodified_since && last_response_time > Time.now : false - when unmodified_since && mtime > last_response_time : false - when none_match && none_match == '*' : false - when none_match && !none_match.strip.split(/\s*,\s*/).include?(etag) : false - else unmodified_since || none_match # validation successful if we get this far and at least one of the header exists + when modified_since && !last_response_time = Time.httpdate(modified_since) rescue nil : false + when modified_since && last_response_time > Time.now : false + when modified_since && mtime > last_response_time : false + when none_match && none_match == '*' : false + when none_match && !none_match.strip.split(/\s*,\s*/).include?(etag) : false + else modified_since || none_match # validation successful if we get this far and at least one of the header exists end header = response.header -- cgit v1.2.3-24-ge0c7