ruby-changes:21974
From: tenderlove <ko1@a...>
Date: Tue, 13 Dec 2011 07:15:49 +0900 (JST)
Subject: [ruby-changes:21974] tenderlove:r34023 (trunk): * lib/webrick/httpresponse.rb (setup_header): 204 and 304 responses
tenderlove 2011-12-13 07:15:31 +0900 (Tue, 13 Dec 2011) New Revision: 34023 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34023 Log: * lib/webrick/httpresponse.rb (setup_header): 204 and 304 responses are allowed to have a Keep-Alive connection. [ruby-core:41581] * test/webrick/test_httpresponse.rb: corresponding test. Added files: trunk/test/webrick/test_httpresponse.rb Modified files: trunk/ChangeLog trunk/lib/webrick/httpresponse.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 34022) +++ ChangeLog (revision 34023) @@ -1,3 +1,10 @@ +Tue Dec 13 07:13:28 2011 Aaron Patterson <aaron@t...> + + * lib/webrick/httpresponse.rb (setup_header): 204 and 304 responses + are allowed to have a Keep-Alive connection. [ruby-core:41581] + + * test/webrick/test_httpresponse.rb: corresponding test. + Tue Dec 13 06:29:39 2011 Nobuyoshi Nakada <nobu@r...> * parse.y (parser_magic_comment): should pass the proper value. Index: lib/webrick/httpresponse.rb =================================================================== --- lib/webrick/httpresponse.rb (revision 34022) +++ lib/webrick/httpresponse.rb (revision 34023) @@ -202,7 +202,7 @@ if @header['connection'] == "close" @keep_alive = false elsif keep_alive? - if chunked? || @header['content-length'] + if chunked? || @header['content-length'] || @status == 304 || @status == 204 @header['connection'] = "Keep-Alive" else msg = "Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true" Index: test/webrick/test_httpresponse.rb =================================================================== --- test/webrick/test_httpresponse.rb (revision 0) +++ test/webrick/test_httpresponse.rb (revision 34023) @@ -0,0 +1,46 @@ +require "webrick" +require "minitest/autorun" + +module WEBrick + class TestHTTPResponse < MiniTest::Unit::TestCase + class FakeLogger + attr_reader :messages + + def initialize + @messages = [] + end + + def warn msg + @messages << msg + end + end + + def test_304_does_not_log_warning + logger = FakeLogger.new + config = Config::HTTP + config[:Logger] = logger + + res = HTTPResponse.new config + res.status = 304 + res.keep_alive = true + + res.setup_header + + assert_equal 0, logger.messages.length + end + + def test_204_does_not_log_warning + logger = FakeLogger.new + config = Config::HTTP + config[:Logger] = logger + + res = HTTPResponse.new config + res.status = 204 + res.keep_alive = true + + res.setup_header + + assert_equal 0, logger.messages.length + end + end +end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/