From 99551555c8c957aca4ad01a776252acf3aa37775 Mon Sep 17 00:00:00 2001 From: wakou Date: Wed, 29 May 2002 04:48:32 +0000 Subject: * lib/cgi.rb: not use const if GET, HEAD. check multipart form head. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ lib/cgi.rb | 47 +++++++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2ec19a378c..b250a3827e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Wed May 29 13:45:15 2002 Wakou Aoyama + + * lib/cgi.rb: not use const if GET, HEAD. check multipart form head. + Tue May 28 12:13:37 2002 Nobuyoshi Nakada * eval.c (scope_node): trick to keep the node has a scope. diff --git a/lib/cgi.rb b/lib/cgi.rb index 05b5919362..e44ef862e3 100644 --- a/lib/cgi.rb +++ b/lib/cgi.rb @@ -8,7 +8,7 @@ Copyright (C) 2000 Network Applied Communication Laboratory, Inc. Copyright (C) 2000 Information-technology Promotion Agency, Japan -Wakou Aoyama +Wakou Aoyama @@ -775,10 +775,6 @@ convert string charset, and set language to "ja". @params.update(hash) end - def param(name) - @params[name].join("\0") - end - def read_multipart(boundary, content_length) params = Hash.new([]) boundary = "--" + boundary @@ -792,6 +788,8 @@ convert string charset, and set language to "ja". status = stdinput.read(boundary_size) if nil == status raise EOFError, "no content body" + elsif boundary + EOL != status + raise EOFError, "bad content body" end require "tempfile" @@ -1892,13 +1890,27 @@ The hash keys are case sensitive. Ask the samples. def initialize(type = "query") extend QueryExtension - if defined?(CGI_PARAMS) - @params = CGI_PARAMS.nil? ? nil : CGI_PARAMS.dup - @cookies = CGI_COOKIES.nil? ? nil : CGI_COOKIES.dup - else + if "POST" != env_table['REQUEST_METHOD'] initialize_query() # set @params, @cookies - eval "CGI_PARAMS = @params.nil? ? nil : @params.dup" - eval "CGI_COOKIES = @cookies.nil? ? nil : @cookies.dup" + else + if defined?(CGI_PARAMS) + @params = CGI_PARAMS.nil? ? nil : CGI_PARAMS.dup + @cookies = CGI_COOKIES.nil? ? nil : CGI_COOKIES.dup + else + initialize_query() # set @params, @cookies + eval "CGI_PARAMS = @params.nil? ? nil : @params.dup" + eval "CGI_COOKIES = @cookies.nil? ? nil : @cookies.dup" + if defined?(MOD_RUBY) and (RUBY_VERSION < "1.4.3") + raise "Please, use ruby1.4.3 or later." + else + at_exit() do + if defined?(CGI_PARAMS) + remove_const(:CGI_PARAMS) + remove_const(:CGI_COOKIES) + end + end + end + end end @output_cookies = nil @output_hidden = nil @@ -1925,17 +1937,6 @@ The hash keys are case sensitive. Ask the samples. end end - - if defined?(MOD_RUBY) and (RUBY_VERSION < "1.4.3") - raise "Please, use ruby1.4.3 or later." - else - at_exit() do - if defined?(CGI_PARAMS) - remove_const(:CGI_PARAMS) - remove_const(:CGI_COOKIES) - end - end - end end @@ -1947,3 +1948,5 @@ delete. see cvs log. =end + +# vi:set tw=0: -- cgit v1.2.3