diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/webrick/httpservlet/cgihandler.rb | 6 |
2 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Wed Sep 24 02:08:11 2003 GOTOU Yuuzou <gotoyuzo@notwork.org> + + * lib/webrick/httpservlet/cgihandler.rb: conform to mswin32. + [ruby-talk:82735], [ruby-talk:82748], [ruby-talk:82818] + Mon Sep 23 23:10:16 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org> * lib/logger.rb: add Logger#<<(msg) for writing msg without any diff --git a/lib/webrick/httpservlet/cgihandler.rb b/lib/webrick/httpservlet/cgihandler.rb index 70708610d1..aa92bb4a2c 100644 --- a/lib/webrick/httpservlet/cgihandler.rb +++ b/lib/webrick/httpservlet/cgihandler.rb @@ -19,7 +19,8 @@ module WEBrick class CGIHandler < AbstractServlet Ruby = File::join(::Config::CONFIG['bindir'], ::Config::CONFIG['ruby_install_name']) - CGIRunner = "#{Ruby} #{Config::LIBDIR}/httpservlet/cgi_runner.rb" + Ruby << ::Config::CONFIG['EXEEXT'] + CGIRunner = "\"#{Ruby}\" \"#{Config::LIBDIR}/httpservlet/cgi_runner.rb\"" def initialize(server, name) super @@ -32,7 +33,7 @@ module WEBrick data = nil status = -1 - cgi_in = IO::popen(@cgicmd, "w") + cgi_in = IO::popen(@cgicmd, "wb") cgi_out = Tempfile.new("webrick.cgiout.", @tempdir) cgi_err = Tempfile.new("webrick.cgierr.", @tempdir) begin @@ -55,6 +56,7 @@ module WEBrick ensure cgi_in.close status = $? >> 8 + sleep 0.1 if /mswin/ =~ RUBY_PLATFORM data = cgi_out.read cgi_out.close(true) if errmsg = cgi_err.read |