diff --git a/ChangeLog b/ChangeLog index f6563f6a7b..7c1842f6ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Dec 20 21:59:03 2003 GOTOU Yuuzou + + * lib/webrick/httprequest.rb (HTTPRequest#meta_vars): refine regexp. + + * lib/webrick/cgi.rb (CGI#start): NPH scripts return status line + instead of Status: header field. + + * lib/webrick/cgi.rb (CGI::Socket): refine some coditions. + Sat Dec 20 16:07:14 2003 Nobuyoshi Nakada * lib/optparse.rb (OptionParser::Completion::complete): wrong @@ -26,7 +35,7 @@ Sat Dec 20 02:18:31 2003 Yukihiro Matsumoto Fri Dec 19 21:24:22 2003 GOTOU Yuuzou - * lib/webrick/httprequest.rb (meta_vers): should not set + * lib/webrick/httprequest.rb (HTTPRequest#meta_vars): should not set HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH. * lib/webrick/https.rb (HTTPRequest#parse): should check presence diff --git a/lib/webrick/cgi.rb b/lib/webrick/cgi.rb index 464526d153..c4a5b1e934 100644 --- a/lib/webrick/cgi.rb +++ b/lib/webrick/cgi.rb @@ -37,11 +37,11 @@ module WEBrick sock = WEBrick::CGI::Socket.new(@config, env, stdin, stdout) req = HTTPRequest.new(@config) res = HTTPResponse.new(@config) - def res.setup_header - @header["status"] ||= @status - super - end unless @config[:NPH] + def res.setup_header + @header["status"] ||= @status + super + end def res.status_line "" end @@ -49,11 +49,11 @@ module WEBrick begin req.parse(sock) - req.script_name = (ENV["SCRIPT_NAME"] || "").dup - if ENV["PATH_INFO"].nil? || ENV["PATH_INFO"].empty? + req.script_name = (env["SCRIPT_NAME"] || "").dup + if env["PATH_INFO"].nil? || env["PATH_INFO"].empty? req.path_info = nil else - req.path_info = ENV["PATH_INFO"].dup + req.path_info = env["PATH_INFO"].dup end res.request_method = req.request_method res.request_uri = req.request_uri @@ -167,13 +167,13 @@ module WEBrick def cert if pem = @env["SSL_SERVER_CERT"] - OpenSSL::X509::Certificate.new(pem) if !pem.empty? + OpenSSL::X509::Certificate.new(pem) unless pem.empty? end end def peer_cert if pem = @env["SSL_CLIENT_CERT"] - OpenSSL::X509::Certificate.new(pem) if !pem.empty? + OpenSSL::X509::Certificate.new(pem) unless pem.empty? end end @@ -183,7 +183,7 @@ module WEBrick certs = keys.sort.collect{|k| if /^SSL_CLIENT_CERT_CHAIN_\d+$/ =~ k if pem = @env[k] - OpenSSL::X509::Certificate.new(pem) if !pem.empty? + OpenSSL::X509::Certificate.new(pem) unless pem.empty? end end } diff --git a/lib/webrick/httprequest.rb b/lib/webrick/httprequest.rb index 455e94c08c..8943a037ff 100644 --- a/lib/webrick/httprequest.rb +++ b/lib/webrick/httprequest.rb @@ -190,8 +190,8 @@ module WEBrick meta["SERVER_SOFTWARE"] = @config[:ServerSoftware].dup self.each{|key, val| - next if /content-type/ =~ key - next if /content-length/ =~ key + next if /^content-type$/i =~ key + next if /^content-length$/i =~ key name = "HTTP_" + key name.gsub!(/-/o, "_") name.upcase!