summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2019-12-16 23:39:10 +0900
committerYusuke Endoh <mame@ruby-lang.org>2019-12-16 23:39:10 +0900
commit251f5d8226dbde06ba06e980e3b741b45ae3826d (patch)
treeb90e19798c8a218c6bf7d1d09f541e24c047fc21
parent5105240b1e851410020b3b3f1a2bead7ffdd4291 (diff)
Revert "lib/net/http/response.rb: support raw deflate correctly"
This reverts commit 5105240b1e851410020b3b3f1a2bead7ffdd4291. In RFC 2616: ``` deflate The "zlib" format defined in RFC 1950 [31] in combination with the "deflate" compression mechanism described in RFC 1951 [29]. ``` So "Content-Encoding: deflate" means zlib format, not raw deflate. [Bug #11268]
-rw-r--r--lib/net/http/response.rb6
-rw-r--r--test/net/http/test_httpresponse.rb32
2 files changed, 19 insertions, 19 deletions
diff --git a/lib/net/http/response.rb b/lib/net/http/response.rb
index 7c89876..5a94f95 100644
--- a/lib/net/http/response.rb
+++ b/lib/net/http/response.rb
@@ -264,7 +264,7 @@ class Net::HTTPResponse
when 'deflate', 'gzip', 'x-gzip' then
self.delete 'content-encoding'
- inflate_body_io = Inflater.new(@socket, v.downcase == "deflate")
+ inflate_body_io = Inflater.new(@socket)
begin
yield inflate_body_io
@@ -358,10 +358,10 @@ class Net::HTTPResponse
##
# Creates a new Inflater wrapping +socket+
- def initialize(socket, raw_deflate)
+ def initialize socket
@socket = socket
# zlib with automatic gzip detection
- @inflate = Zlib::Inflate.new(raw_deflate ? -Zlib::MAX_WBITS : 32 + Zlib::MAX_WBITS)
+ @inflate = Zlib::Inflate.new(32 + Zlib::MAX_WBITS)
end
##
diff --git a/test/net/http/test_httpresponse.rb b/test/net/http/test_httpresponse.rb
index 14a804d..a03bb2e 100644
--- a/test/net/http/test_httpresponse.rb
+++ b/test/net/http/test_httpresponse.rb
@@ -107,9 +107,9 @@ EOS
HTTP/1.1 200 OK
Connection: close
Content-Encoding: deflate
-Content-Length: 7
+Content-Length: 13
-\xCBH\xCD\xC9\xC9\a\x00
+x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15
EOS
res = Net::HTTPResponse.read_new(io)
@@ -126,7 +126,7 @@ EOS
assert_equal 'hello', body
else
assert_equal 'deflate', res['content-encoding']
- assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body
+ assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body
end
end
@@ -135,9 +135,9 @@ EOS
HTTP/1.1 200 OK
Connection: close
Content-Encoding: DEFLATE
-Content-Length: 7
+Content-Length: 13
-\xCBH\xCD\xC9\xC9\a\x00
+x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15
EOS
res = Net::HTTPResponse.read_new(io)
@@ -154,7 +154,7 @@ EOS
assert_equal 'hello', body
else
assert_equal 'DEFLATE', res['content-encoding']
- assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body
+ assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body
end
end
@@ -165,10 +165,10 @@ Connection: close
Content-Encoding: deflate
Transfer-Encoding: chunked
-4
-\xCBH\xCD\xC9
-3
-\xC9\a\x00
+6
+x\x9C\xCBH\xCD\xC9
+7
+\xC9\a\x00\x06,\x02\x15
0
EOS
@@ -187,7 +187,7 @@ EOS
assert_equal 'hello', body
else
assert_equal 'deflate', res['content-encoding']
- assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body
+ assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body
end
end
@@ -196,9 +196,9 @@ EOS
HTTP/1.1 200 OK
Connection: close
Content-Encoding: deflate
-Content-Length: 7
+Content-Length: 13
-\xCBH\xCD\xC9\xC9\a\x00
+x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15
EOS
res = Net::HTTPResponse.read_new(io)
@@ -211,7 +211,7 @@ EOS
end
assert_equal 'deflate', res['content-encoding'], 'Bug #7831'
- assert_equal "\xCBH\xCD\xC9\xC9\a\x00", body, 'Bug #7381'
+ assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15", body, 'Bug #7381'
end
def test_read_body_content_encoding_deflate_no_length
@@ -220,7 +220,7 @@ HTTP/1.1 200 OK
Connection: close
Content-Encoding: deflate
-\xCBH\xCD\xC9\xC9\a\x00
+x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15
EOS
res = Net::HTTPResponse.read_new(io)
@@ -237,7 +237,7 @@ EOS
assert_equal 'hello', body
else
assert_equal 'deflate', res['content-encoding']
- assert_equal "\xCBH\xCD\xC9\xC9\a\x00\r\n", body
+ assert_equal "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15\r\n", body
end
end