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

* lib/webrick/cgi.rb (WEBrick::CGI#setup_header): avoid

SecurityError. [ruby-dev:24970]

* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should wait
  for reading request till data arrive. [ruby-talk:121068]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
gotoyuzo 2004-12-09 07:22:45 +00:00
parent e326946b35
commit 3f06be1b9d
3 changed files with 24 additions and 10 deletions

View file

@ -1,3 +1,11 @@
Thu Dec 9 16:21:51 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
* lib/webrick/cgi.rb (WEBrick::CGI#setup_header): avoid
SecurityError. [ruby-dev:24970]
* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should wait
for reading request till data arrive. [ruby-talk:121068]
Thu Dec 9 14:38:35 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
* string.c (rb_str_inspect): escape # which starts an expression

View file

@ -158,20 +158,19 @@ module WEBrick
end
def setup_header
add_header("CONTENT_TYPE", "Content-Type")
add_header("CONTENT_LENGTH", "Content-length")
@env.each_key{|name|
if /^HTTP_(.*)/ =~ name
add_header(name, $1.gsub(/_/, "-"))
@env.each{|key, value|
case key
when "CONTENT_TYPE", "CONTENT_LENGTH"
add_header(key.gsub(/_/, "-"), value)
when /^HTTP_(.*)/
add_header($1.gsub(/_/, "-"), value)
end
}
end
def add_header(envname, hdrname)
if value = @env[envname]
unless value.empty?
@header_part << hdrname << ": " << value << CRLF
end
def add_header(hdrname, value)
unless value.empty?
@header_part << hdrname << ": " << value << CRLF
end
end

View file

@ -46,6 +46,13 @@ module WEBrick
req = HTTPRequest.new(@config)
server = self
begin
timeout = @config[:RequestTimeout]
while timeout > 0
break if IO.select([sock], nil, nil, 0.5)
timeout = 0 if @status != :Running
timeout -= 0.5
end
raise HTTPStatus::EOFError if timeout <= 0
req.parse(sock)
res.request_method = req.request_method
res.request_uri = req.request_uri