[前][次][番号順一覧][スレッド一覧]

ruby-changes:58988

From: Jeremy <ko1@a...>
Date: Sat, 30 Nov 2019 20:20:07 +0900 (JST)
Subject: [ruby-changes:58988] a98632d5c2 (master): [ruby/webrick] Enabled chunked encoding if Transfer-Encoding: chunked header is set

https://git.ruby-lang.org/ruby.git/commit/?id=a98632d5c2

From a98632d5c20e41e05074384b8f760af407e6d52a Mon Sep 17 00:00:00 2001
From: Jeremy Evans <code@j...>
Date: Sun, 11 Aug 2019 12:57:11 -0700
Subject: [ruby/webrick] Enabled chunked encoding if Transfer-Encoding: chunked
 header is set

Patch from Leonard Garvey.

Fixes Ruby Bug 9986.

https://github.com/ruby/webrick/commit/8cff7f3995

diff --git a/lib/webrick/httpresponse.rb b/lib/webrick/httpresponse.rb
index 9942a59..ba4494a 100644
--- a/lib/webrick/httpresponse.rb
+++ b/lib/webrick/httpresponse.rb
@@ -155,6 +155,7 @@ module WEBrick https://github.com/ruby/ruby/blob/trunk/lib/webrick/httpresponse.rb#L155
     # Sets the response header +field+ to +value+
 
     def []=(field, value)
+      @chunked = value.to_s.downcase == 'chunked' if field.downcase == 'transfer-encoding'
       @header[field.downcase] = value.to_s
     end
 
diff --git a/test/webrick/test_httpresponse.rb b/test/webrick/test_httpresponse.rb
index 696163b..e8c69a1 100644
--- a/test/webrick/test_httpresponse.rb
+++ b/test/webrick/test_httpresponse.rb
@@ -133,6 +133,13 @@ module WEBrick https://github.com/ruby/ruby/blob/trunk/test/webrick/test_httpresponse.rb#L133
       assert_equal 0, logger.messages.length
     end
 
+    def test_200_chunked_does_not_set_content_length
+      res.chunked     = false
+      res["Transfer-Encoding"] = 'chunked'
+      res.setup_header
+      assert_nil res.header.fetch('content-length', nil)
+    end
+
     def test_send_body_io
       IO.pipe {|body_r, body_w|
         body_w.write 'hello'
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]