* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#send_body_io):

ensure to close @body. (http://bugs.debian.org/277520)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
gotoyuzo 2004-10-21 10:10:52 +00:00
parent 2870c4d1a6
commit b8f68de2be
2 changed files with 24 additions and 16 deletions

View File

@ -1,3 +1,8 @@
Thu Oct 21 19:06:15 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#send_body_io):
ensure to close @body. (http://bugs.debian.org/277520)
Thu Oct 21 13:11:31 2004 WATANABE Hirofumi <eban@ruby-lang.org> Thu Oct 21 13:11:31 2004 WATANABE Hirofumi <eban@ruby-lang.org>
* io.c (pipe_open): variable name "fpw" is conflicted. * io.c (pipe_open): variable name "fpw" is conflicted.

View File

@ -254,24 +254,27 @@ module WEBrick
private private
def send_body_io(socket) def send_body_io(socket)
if @request_method == "HEAD" begin
# do nothing if @request_method == "HEAD"
elsif chunked? # do nothing
while buf = @body.read(BUFSIZE) elsif chunked?
next if buf.empty? while buf = @body.read(BUFSIZE)
data = "" next if buf.empty?
data << format("%x", buf.size) << CRLF data = ""
data << buf << CRLF data << format("%x", buf.size) << CRLF
_write_data(socket, data) data << buf << CRLF
@sent_size += buf.size _write_data(socket, data)
@sent_size += buf.size
end
_write_data(socket, "0#{CRLF}#{CRLF}")
else
size = @header['content-length'].to_i
_send_file(socket, @body, 0, size)
@sent_size = size
end end
_write_data(socket, "0#{CRLF}#{CRLF}") ensure
else @body.close
size = @header['content-length'].to_i
_send_file(socket, @body, 0, size)
@sent_size = size
end end
@body.close
end end
def send_body_string(socket) def send_body_string(socket)