diff options
author | gotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-18 13:42:52 +0000 |
---|---|---|
committer | gotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-05-18 13:42:52 +0000 |
commit | 9a012539baf79006b2c6b25b4eaf8d2cdd40e123 (patch) | |
tree | 0b8f535b800ed312033ff5db7e6ac45415ea15fd /lib/webrick/httprequest.rb | |
parent | 9e365254a64be2e1eff5ac5aa57ebe72b31ecc51 (diff) |
* lib/webrick/config.rb (WEBrick::Config::HTTP): add new parameters,
:InputBufferSize and :OutputBufferSize.
* lib/webrick/utils.rb (WEBrick::Utils.timeout): add new timeout
method. this implementation is expected to be compatible with
timeout.rb and faster than timeout.rb.
* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#_read_data):
Timeout.timeout is replaced by WEBrick::Utils.timeout.
* lib/webrick/httprequest.rb: WEBrick::HTTPRequest::BUFSIZE is
replaced by config[:InputBufferSize].
* lib/webrick/httpresposne.rb: WEBrick::HTTPResponse::BUFSIZE is
replaced by config[:OutputBufferSize].
* lib/webrick/server.rb: get rid of unnecessary require.
* test/webrick/test_utils.rb: test for WEBrick::Utils.timeout.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/webrick/httprequest.rb')
-rw-r--r-- | lib/webrick/httprequest.rb | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/webrick/httprequest.rb b/lib/webrick/httprequest.rb index ad9a983ef2..33dafa93b1 100644 --- a/lib/webrick/httprequest.rb +++ b/lib/webrick/httprequest.rb @@ -8,19 +8,15 @@ # # $IPR: httprequest.rb,v 1.64 2003/07/13 17:18:22 gotoyuzo Exp $ -require 'timeout' require 'uri' - require 'webrick/httpversion' require 'webrick/httpstatus' require 'webrick/httputils' require 'webrick/cookie' module WEBrick - class HTTPRequest BODY_CONTAINABLE_METHODS = [ "POST", "PUT" ] - BUFSIZE = 1024*4 # Request line attr_reader :request_line @@ -44,6 +40,7 @@ module WEBrick def initialize(config) @config = config + @buffer_size = @config[:InputBufferSize] @logger = config[:Logger] @request_line = @request_method = @@ -278,7 +275,7 @@ module WEBrick elsif self['content-length'] || @remaining_size @remaining_size ||= self['content-length'].to_i while @remaining_size > 0 - sz = BUFSIZE < @remaining_size ? BUFSIZE : @remaining_size + sz = [@buffer_size, @remaining_size].min break unless buf = read_data(socket, sz) @remaining_size -= buf.size block.call(buf) @@ -321,7 +318,7 @@ module WEBrick def _read_data(io, method, arg) begin - timeout(@config[:RequestTimeout]){ + WEBrick::Utils.timeout(@config[:RequestTimeout]){ return io.__send__(method, arg) } rescue Errno::ECONNRESET |