aboutsummaryrefslogtreecommitdiffstats
path: root/lib/webrick/httprequest.rb
diff options
context:
space:
mode:
authorgotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-18 13:42:52 +0000
committergotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-05-18 13:42:52 +0000
commit9a012539baf79006b2c6b25b4eaf8d2cdd40e123 (patch)
tree0b8f535b800ed312033ff5db7e6ac45415ea15fd /lib/webrick/httprequest.rb
parent9e365254a64be2e1eff5ac5aa57ebe72b31ecc51 (diff)
downloadruby-9a012539baf79006b2c6b25b4eaf8d2cdd40e123.tar.gz
* 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.rb9
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