mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):
ENV["REQUEST_URI"] is better to get correct Request-URI than ENV["SCRIPT_NAME"] + ENV["PATH_INFO"]. [ruby-dev:26235] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
aee4253e70
commit
2530fa50e9
4 changed files with 24 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Sat May 28 02:00:11 2005 GOTOU Yuuzou <gotoyuzo@notwork.org>
|
||||||
|
|
||||||
|
* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):
|
||||||
|
ENV["REQUEST_URI"] is better to get correct Request-URI
|
||||||
|
than ENV["SCRIPT_NAME"] + ENV["PATH_INFO"]. [ruby-dev:26235]
|
||||||
|
|
||||||
Fri May 27 16:32:04 2005 WATANABE Hirofumi <eban@ruby-lang.org>
|
Fri May 27 16:32:04 2005 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||||
|
|
||||||
* lib/mkmf.rb: use the semicolon as the path separator
|
* lib/mkmf.rb: use the semicolon as the path separator
|
||||||
|
|
|
@ -150,15 +150,17 @@ module WEBrick
|
||||||
meth = @env["REQUEST_METHOD"] || "GET"
|
meth = @env["REQUEST_METHOD"] || "GET"
|
||||||
url = (@env["SCRIPT_NAME"] || File.expand_path($0)).dup
|
url = (@env["SCRIPT_NAME"] || File.expand_path($0)).dup
|
||||||
url << @env["PATH_INFO"].to_s
|
url << @env["PATH_INFO"].to_s
|
||||||
|
unless url = @env["REQUEST_URI"]
|
||||||
url = WEBrick::HTTPUtils.escape_path(url)
|
url = WEBrick::HTTPUtils.escape_path(url)
|
||||||
if query_string = @env["QUERY_STRING"]
|
if query_string = @env["QUERY_STRING"]
|
||||||
unless query_string.empty?
|
unless query_string.empty?
|
||||||
url << "?" << query_string
|
url << "?" << query_string
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
# we cannot get real HTTP version of client ;)
|
# we cannot get real HTTP version of client ;)
|
||||||
httpv = @config[:HTTPVersion]
|
httpv = @config[:HTTPVersion]
|
||||||
"#{meth} #{url} HTTP/#{httpv}"
|
return "#{meth} #{url} HTTP/#{httpv}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def setup_header
|
def setup_header
|
||||||
|
|
|
@ -16,6 +16,7 @@ class TestWEBrickCGI < Test::Unit::TestCase
|
||||||
config = {
|
config = {
|
||||||
:CGIInterpreter => EnvUtil.rubybin,
|
:CGIInterpreter => EnvUtil.rubybin,
|
||||||
:DocumentRoot => File.dirname(__FILE__),
|
:DocumentRoot => File.dirname(__FILE__),
|
||||||
|
:DirectoryIndex => ["webrick.cgi"],
|
||||||
}
|
}
|
||||||
TestWEBrick.start_httpserver(config){|server, addr, port|
|
TestWEBrick.start_httpserver(config){|server, addr, port|
|
||||||
http = Net::HTTP.new(addr, port)
|
http = Net::HTTP.new(addr, port)
|
||||||
|
@ -41,6 +42,12 @@ class TestWEBrickCGI < Test::Unit::TestCase
|
||||||
req["Content-Type"] = "application/x-www-form-urlencoded"
|
req["Content-Type"] = "application/x-www-form-urlencoded"
|
||||||
http.request(req, "a=1&a=2&b=x"){|res|
|
http.request(req, "a=1&a=2&b=x"){|res|
|
||||||
assert_equal("a=1, a=2, b=x", res.body)}
|
assert_equal("a=1, a=2, b=x", res.body)}
|
||||||
|
req = Net::HTTP::Get.new("/")
|
||||||
|
http.request(req){|res|
|
||||||
|
ary = res.body.to_a
|
||||||
|
assert_match(%r{/$}, ary[0])
|
||||||
|
assert_match(%r{/webrick.cgi$}, ary[1])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,6 +12,10 @@ class TestApp < WEBrick::CGI
|
||||||
"#{key}=#{v}"
|
"#{key}=#{v}"
|
||||||
}.join(", ")
|
}.join(", ")
|
||||||
}.join(", ")
|
}.join(", ")
|
||||||
|
elsif %r{/$} =~ req.request_uri.to_s
|
||||||
|
res.body = ""
|
||||||
|
res.body << req.request_uri.to_s << "\n"
|
||||||
|
res.body << req.script_name
|
||||||
else
|
else
|
||||||
res.body = req.script_name
|
res.body = req.script_name
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue