summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorgotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-18 16:15:37 +0000
committergotoyuzo <gotoyuzo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-18 16:15:37 +0000
commit1ac2033d35d5dc7d3c4b7dab71f83c8d7e50c5ed (patch)
treef6c90af806ee5e2f40e75e25b84f5db1bc413342 /lib
parenta061fdf407dde2199308a161fcef9ab46e7dcb5a (diff)
* lib/webrick/httpservlet/cgihandler.rb
(WEBrick::HTTPServlet::CGIhandler#do_GET): set SystemRoot environment variable to CGI process on Windows native platforms. [ruby-dev:23936] * lib/webrick/httpservlet/cgihandler.rb (WEBrick::HTTPServlet::CGIhandler#do_GET): use $?.exitstatus and refine log message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/webrick/httpservlet/cgihandler.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/webrick/httpservlet/cgihandler.rb b/lib/webrick/httpservlet/cgihandler.rb
index aa92bb4a2c..7dd330ba7b 100644
--- a/lib/webrick/httpservlet/cgihandler.rb
+++ b/lib/webrick/httpservlet/cgihandler.rb
@@ -41,6 +41,9 @@ module WEBrick
meta = req.meta_vars
meta["SCRIPT_FILENAME"] = @script_filename
meta["PATH"] = @config[:CGIPathEnv]
+ if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM
+ meta["SystemRoot"] = ENV["SystemRoot"]
+ end
dump = Marshal.dump(meta)
cgi_in.write("%8d" % cgi_out.path.size)
@@ -55,8 +58,8 @@ module WEBrick
end
ensure
cgi_in.close
- status = $? >> 8
- sleep 0.1 if /mswin/ =~ RUBY_PLATFORM
+ status = $?.exitstatus
+ sleep 0.1 if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM
data = cgi_out.read
cgi_out.close(true)
if errmsg = cgi_err.read
@@ -74,7 +77,7 @@ module WEBrick
data = "" unless data
raw_header, body = data.split(/^[\xd\xa]+/on, 2)
raise HTTPStatus::InternalServerError,
- "The server encontered a script error." if body.nil?
+ "Premature end of script headers: #{@script_filename}" if body.nil?
begin
header = HTTPUtils::parse_header(raw_header)