1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

merge revision(s) 62953:

webrick: favor .write over << method

	This will make the next change to use IO.copy_stream
	easier-to-read.  When we can drop Ruby 2.4 support in a few
	years, this will allow us to use writev(2) with multiple
	arguments for headers and chunked responses.

	* lib/webrick/cgi.rb (write): new wrapper method
	  lib/webrick/httpresponse.rb: (send_header): use socket.write
	  (send_body_io): ditto
	  (send_body_string): ditto
	  (send_body_proc): ditto
	  (_write_data): ditto
	  (ChunkedWrapper#write): ditto
	  (_send_file): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@62988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2018-03-28 09:39:53 +00:00
parent 31d6b6f7d6
commit af30b5b5a8
3 changed files with 16 additions and 11 deletions

View file

@ -265,6 +265,10 @@ module WEBrick
@out_port << data
end
def write(data)
@out_port.write(data)
end
def cert
return nil unless defined?(OpenSSL)
if pem = @env["SSL_SERVER_CERT"]

View file

@ -293,7 +293,7 @@ module WEBrick
data << "Set-Cookie: " << cookie.to_s << CRLF
}
data << CRLF
_write_data(socket, data)
socket.write(data)
end
end
@ -401,13 +401,13 @@ module WEBrick
@body.readpartial( @buffer_size, buf ) # there is no need to clear buf?
data << format("%x", buf.bytesize) << CRLF
data << buf << CRLF
_write_data(socket, data)
socket.write(data)
data.clear
@sent_size += buf.bytesize
end
rescue EOFError # do nothing
end
_write_data(socket, "0#{CRLF}#{CRLF}")
socket.write("0#{CRLF}#{CRLF}")
else
size = @header['content-length'].to_i
_send_file(socket, @body, 0, size)
@ -428,13 +428,13 @@ module WEBrick
data = ""
data << format("%x", buf.bytesize) << CRLF
data << buf << CRLF
_write_data(socket, data)
socket.write(data)
@sent_size += buf.bytesize
end
_write_data(socket, "0#{CRLF}#{CRLF}")
socket.write("0#{CRLF}#{CRLF}")
else
if @body && @body.bytesize > 0
_write_data(socket, @body)
socket.write(@body)
@sent_size = @body.bytesize
end
end
@ -449,18 +449,19 @@ module WEBrick
if size == 0
while buf = input.read(@buffer_size)
_write_data(output, buf)
output.write(buf)
end
else
while size > 0
sz = @buffer_size < size ? @buffer_size : size
buf = input.read(sz)
_write_data(output, buf)
output.write(buf)
size -= buf.bytesize
end
end
end
# preserved for compatibility with some 3rd-party handlers
def _write_data(socket, data)
socket << data
end

View file

@ -1,10 +1,10 @@
#define RUBY_VERSION "2.4.4"
#define RUBY_RELEASE_DATE "2018-03-25"
#define RUBY_PATCHLEVEL 288
#define RUBY_RELEASE_DATE "2018-03-28"
#define RUBY_PATCHLEVEL 289
#define RUBY_RELEASE_YEAR 2018
#define RUBY_RELEASE_MONTH 3
#define RUBY_RELEASE_DAY 25
#define RUBY_RELEASE_DAY 28
#include "ruby/version.h"