aboutsummaryrefslogtreecommitdiffstats
path: root/lib/webrick/httpresponse.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/webrick/httpresponse.rb')
-rw-r--r--lib/webrick/httpresponse.rb13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/webrick/httpresponse.rb b/lib/webrick/httpresponse.rb
index d0f232d1e1..b3f1abef88 100644
--- a/lib/webrick/httpresponse.rb
+++ b/lib/webrick/httpresponse.rb
@@ -16,8 +16,6 @@ require 'webrick/httpstatus'
module WEBrick
class HTTPResponse
- BUFSIZE = 1024*4
-
attr_reader :http_version, :status, :header
attr_reader :cookies
attr_accessor :reason_phrase
@@ -30,6 +28,7 @@ module WEBrick
def initialize(config)
@config = config
+ @buffer_size = config[:OutputBufferSize]
@logger = config[:Logger]
@header = Hash.new
@status = HTTPStatus::RC_OK
@@ -258,7 +257,7 @@ module WEBrick
if @request_method == "HEAD"
# do nothing
elsif chunked?
- while buf = @body.read(BUFSIZE)
+ while buf = @body.read(@buffer_size)
next if buf.empty?
data = ""
data << format("%x", buf.size) << CRLF
@@ -282,7 +281,7 @@ module WEBrick
# do nothing
elsif chunked?
remain = body ? @body.size : 0
- while buf = @body[@sent_size, BUFSIZE]
+ while buf = @body[@sent_size, @buffer_size]
break if buf.empty?
data = ""
data << format("%x", buf.size) << CRLF
@@ -301,18 +300,18 @@ module WEBrick
def _send_file(output, input, offset, size)
while offset > 0
- sz = BUFSIZE < offset ? BUFSIZE : offset
+ sz = @buffer_size < size ? @buffer_size : size
buf = input.read(sz)
offset -= buf.size
end
if size == 0
- while buf = input.read(BUFSIZE)
+ while buf = input.read(@buffer_size)
_write_data(output, buf)
end
else
while size > 0
- sz = BUFSIZE < size ? BUFSIZE : size
+ sz = @buffer_size < size ? @buffer_size : size
buf = input.read(sz)
_write_data(output, buf)
size -= buf.size