From 429ebcd5dfbdc54c239fa9425048119026fe9bef Mon Sep 17 00:00:00 2001 From: zedshaw Date: Sat, 13 May 2006 21:25:53 +0000 Subject: Improved conditional response code from Dan Kubb. Handles ETag on 304 responses better. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@173 19e92222-5c0b-0410-8929-a290d50e31e9 --- lib/mongrel/handlers.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/mongrel/handlers.rb') diff --git a/lib/mongrel/handlers.rb b/lib/mongrel/handlers.rb index de328b7..d71e151 100644 --- a/lib/mongrel/handlers.rb +++ b/lib/mongrel/handlers.rb @@ -179,14 +179,15 @@ module Mongrel else unmodified_since || none_match # validation successful if we get this far and at least one of the header exists end + header = response.header + header[Const::ETAG] = etag + if same_response response.start(304) {} else # first we setup the headers and status then we do a very fast send on the socket directly response.status = 200 - header = response.header header[Const::LAST_MODIFIED] = mtime.httpdate - header[Const::ETAG] = etag # set the mime type from our map based on the ending dot_at = req_path.rindex('.') -- cgit v1.2.3-24-ge0c7