ruby-changes:15287
From: shyouhei <ko1@a...>
Date: Fri, 2 Apr 2010 12:28:01 +0900 (JST)
Subject: [ruby-changes:15287] Ruby:r27172 (ruby_1_8_7): merge revision(s) 26131:
shyouhei 2010-04-02 12:27:45 +0900 (Fri, 02 Apr 2010) New Revision: 27172 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27172 Log: merge revision(s) 26131: * lib/net/http.rb (HTTPGenericRequest#send_request_with_body_stream): increased encoding chunk size for POST request with body_stream (1K -> 16K). patched by Brian Candler. #1284. * test/net/http/test_post_io.rb: added for the patch. It's good if a patch comes with a test. Added files: branches/ruby_1_8_7/test/net/http/test_post_io.rb Modified files: branches/ruby_1_8_7/ChangeLog branches/ruby_1_8_7/lib/net/http.rb branches/ruby_1_8_7/version.h Index: ruby_1_8_7/ChangeLog =================================================================== --- ruby_1_8_7/ChangeLog (revision 27171) +++ ruby_1_8_7/ChangeLog (revision 27172) @@ -1,3 +1,12 @@ +Fri Apr 2 03:27:22 2010 NAKAMURA, Hiroshi <nahi@r...> + + * lib/net/http.rb (HTTPGenericRequest#send_request_with_body_stream): + increased encoding chunk size for POST request with body_stream + (1K -> 16K). patched by Brian Candler. #1284. + + * test/net/http/test_post_io.rb: added for the patch. It's good if a + patch comes with a test. + Thu Apr 1 05:32:17 2010 NAKAMURA Usaku <usa@r...> * string.c (rb_str_inspect): wrong result of UTF-8 inspect because of Index: ruby_1_8_7/version.h =================================================================== --- ruby_1_8_7/version.h (revision 27171) +++ ruby_1_8_7/version.h (revision 27172) @@ -1,15 +1,15 @@ #define RUBY_VERSION "1.8.7" -#define RUBY_RELEASE_DATE "2010-04-01" +#define RUBY_RELEASE_DATE "2010-04-02" #define RUBY_VERSION_CODE 187 -#define RUBY_RELEASE_CODE 20100401 -#define RUBY_PATCHLEVEL 250 +#define RUBY_RELEASE_CODE 20100402 +#define RUBY_PATCHLEVEL 251 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 #define RUBY_VERSION_TEENY 7 #define RUBY_RELEASE_YEAR 2010 #define RUBY_RELEASE_MONTH 4 -#define RUBY_RELEASE_DAY 1 +#define RUBY_RELEASE_DAY 2 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; @@ -26,4 +26,4 @@ #define RUBY_BIRTH_DAY 24 #define RUBY_RELEASE_STR "patchlevel" -#define RUBY_RELEASE_NUM RUBY_PATCHLEVEL +#define RUBY_RELEASE_NUM RUBY_PATCHLEVEL \ No newline at end of file Index: ruby_1_8_7/lib/net/http.rb =================================================================== --- ruby_1_8_7/lib/net/http.rb (revision 27171) +++ ruby_1_8_7/lib/net/http.rb (revision 27172) @@ -1467,6 +1467,8 @@ include HTTPHeader + BUFSIZE = 16*1024 + def initialize(m, reqbody, resbody, path, initheader = nil) @method = m @request_has_body = reqbody @@ -1552,12 +1554,12 @@ supply_default_content_type write_header sock, ver, path if chunked? - while s = f.read(1024) + while s = f.read(BUFSIZE) sock.write(sprintf("%x\r\n", s.length) << s << "\r\n") end sock.write "0\r\n\r\n" else - while s = f.read(1024) + while s = f.read(BUFSIZE) sock.write s end end Index: ruby_1_8_7/test/net/http/test_post_io.rb =================================================================== --- ruby_1_8_7/test/net/http/test_post_io.rb (revision 0) +++ ruby_1_8_7/test/net/http/test_post_io.rb (revision 27172) @@ -0,0 +1,32 @@ +require 'test/unit' +require 'net/http' +require 'stringio' + +class HTTPPostIOTest < Test::Unit::TestCase + def test_post_io_chunk_size + t = nil + TCPServer.open("127.0.0.1", 0) {|serv| + _, port, _, _ = serv.addr + t = Thread.new { + begin + req = Net::HTTP::Post.new("/test.cgi") + req['Transfer-Encoding'] = 'chunked' + req.body_stream = StringIO.new("\0" * (16 * 1024 + 1)) + http = Net::HTTP.new("127.0.0.1", port) + res = http.start { |http| http.request(req) } + rescue EOFError, Errno::EPIPE + end + } + sock = serv.accept + begin + assert_match(/chunked/, sock.gets("\r\n\r\n")) + chunk_header = sock.gets.chomp + assert_equal(16 * 1024, chunk_header.to_i(16)) + ensure + sock.close + end + } + ensure + t.join if t + end +end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/