From 950173565113d03d38f1d92996d061950a402241 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Fri, 27 Jan 2023 23:56:57 +1300 Subject: [PATCH 1/5] Fix warning about missing content type. --- test/webrick/test_httpserver.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/webrick/test_httpserver.rb b/test/webrick/test_httpserver.rb index 93838649..0c5a6147 100644 --- a/test/webrick/test_httpserver.rb +++ b/test/webrick/test_httpserver.rb @@ -541,21 +541,25 @@ def test_big_chunks end def test_accept_put_requests - TestWEBrick.start_httpserver {|server, addr, port, log| + TestWEBrick.start_httpserver do |server, addr, port, log| server.mount_proc("/", lambda {|req, res| res.status = 200 assert_equal("abcde", req.body) }) + Thread.pass while server.status != :Running Net::HTTP.start(addr, port) do |http| req = Net::HTTP::Put.new("/") req.body = "abcde" - http.request(req){|res| + req['content-type'] = "text/plain" + + http.request(req) do |res| assert_equal("200", res.code) - } + end + server.shutdown end - } + end end end From af5d2f57baa4ea6ee070343e0d28616f9d44e746 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Fri, 27 Jan 2023 02:57:26 -0800 Subject: [PATCH 2/5] Body should be non-frozen by default. (#103) --- lib/webrick/httpresponse.rb | 4 ++-- test/webrick/test_httpresponse.rb | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/webrick/httpresponse.rb b/lib/webrick/httpresponse.rb index 9b8837c5..dde0261d 100644 --- a/lib/webrick/httpresponse.rb +++ b/lib/webrick/httpresponse.rb @@ -122,7 +122,7 @@ def initialize(config) @status = HTTPStatus::RC_OK @reason_phrase = nil @http_version = HTTPVersion::convert(@config[:HTTPVersion]) - @body = '' + @body = +"" @keep_alive = true @cookies = [] @request_method = nil @@ -441,7 +441,7 @@ def check_header(header_value) # :stopdoc: def error_body(backtrace, ex, host, port) - @body = +'' + @body = +"" @body << <<-_end_of_html_ diff --git a/test/webrick/test_httpresponse.rb b/test/webrick/test_httpresponse.rb index 1a2bc3e0..9909ded3 100644 --- a/test/webrick/test_httpresponse.rb +++ b/test/webrick/test_httpresponse.rb @@ -28,6 +28,10 @@ def setup @res.keep_alive = true end + def test_response_body_not_frozen + refute @res.body.frozen? + end + def test_prevent_response_splitting_headers_crlf res['X-header'] = "malicious\r\nCookie: cracked_indicator_for_test" io = StringIO.new From c566eb7d0b9145eb8c6588aa0de4da68cace5451 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Fri, 27 Jan 2023 02:57:44 -0800 Subject: [PATCH 3/5] Join test thread. (#104) --- test/webrick/test_httpresponse.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/webrick/test_httpresponse.rb b/test/webrick/test_httpresponse.rb index 9909ded3..48f8ace9 100644 --- a/test/webrick/test_httpresponse.rb +++ b/test/webrick/test_httpresponse.rb @@ -294,6 +294,8 @@ def test_send_body_proc_stream chunk = s2.read assert_match /Connection: close\r\n\r\nhello/, chunk s2.close + + thread.join end assert_empty logger.messages end From 8fd3ef1df9c44c6331692ba5381aecc9d5c813f4 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Fri, 27 Jan 2023 02:57:59 -0800 Subject: [PATCH 4/5] Fix several regexp warnings. (#105) --- test/webrick/test_httpresponse.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/webrick/test_httpresponse.rb b/test/webrick/test_httpresponse.rb index 48f8ace9..83734533 100644 --- a/test/webrick/test_httpresponse.rb +++ b/test/webrick/test_httpresponse.rb @@ -272,7 +272,7 @@ def test_send_body_proc_upgrade IO.pipe do |r, w| @res.send_response(w) w.close - assert_match /Connection: upgrade\r\nUpgrade: text\r\n\r\nhello/, r.read + assert_match(/Connection: upgrade\r\nUpgrade: text\r\n\r\nhello/, r.read) end assert_empty logger.messages end @@ -292,7 +292,7 @@ def test_send_body_proc_stream s2.write("hello") s2.close_write chunk = s2.read - assert_match /Connection: close\r\n\r\nhello/, chunk + assert_match(/Connection: close\r\n\r\nhello/, chunk) s2.close thread.join From 158a7ef85337e0e5cdce0c29cb5cb89c7beb9c53 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 27 Jan 2023 20:16:02 +0900 Subject: [PATCH 5/5] Bump up 1.8.1 --- lib/webrick/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/webrick/version.rb b/lib/webrick/version.rb index 66c20a39..ceeefc33 100644 --- a/lib/webrick/version.rb +++ b/lib/webrick/version.rb @@ -14,5 +14,5 @@ module WEBrick ## # The WEBrick version - VERSION = "1.8.0" + VERSION = "1.8.1" end