* 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0f9662f366
commit
6ef323d6f8
@ -1,3 +1,10 @@
|
|||||||
|
Tue Dec 13 07:13:28 2011 Aaron Patterson <aaron@tenderlovemaking.com>
|
||||||
|
|
||||||
|
* 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@ruby-lang.org>
|
Tue Dec 13 06:29:39 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* parse.y (parser_magic_comment): should pass the proper value.
|
* parse.y (parser_magic_comment): should pass the proper value.
|
||||||
|
@ -202,7 +202,7 @@ module WEBrick
|
|||||||
if @header['connection'] == "close"
|
if @header['connection'] == "close"
|
||||||
@keep_alive = false
|
@keep_alive = false
|
||||||
elsif keep_alive?
|
elsif keep_alive?
|
||||||
if chunked? || @header['content-length']
|
if chunked? || @header['content-length'] || @status == 304 || @status == 204
|
||||||
@header['connection'] = "Keep-Alive"
|
@header['connection'] = "Keep-Alive"
|
||||||
else
|
else
|
||||||
msg = "Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true"
|
msg = "Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true"
|
||||||
|
46
test/webrick/test_httpresponse.rb
Normal file
46
test/webrick/test_httpresponse.rb
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user