summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwakou <wakou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-05-29 04:48:32 +0000
committerwakou <wakou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-05-29 04:48:32 +0000
commit99551555c8c957aca4ad01a776252acf3aa37775 (patch)
tree58811759d6492b28101419ed2a9fd539b17e1b9f
parentbab153b24385e3a27847707720837b4c749960ec (diff)
* 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
-rw-r--r--ChangeLog4
-rw-r--r--lib/cgi.rb47
2 files changed, 29 insertions, 22 deletions
diff --git a/ChangeLog b/ChangeLog
index 2ec19a378c2..b250a3827e1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed May 29 13:45:15 2002 Wakou Aoyama <wakou@ruby-lang.org>
+
+ * lib/cgi.rb: not use const if GET, HEAD. check multipart form head.
+
Tue May 28 12:13:37 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* eval.c (scope_node): trick to keep the node has a scope.
diff --git a/lib/cgi.rb b/lib/cgi.rb
index 05b59193628..e44ef862e3a 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@fsinet.or.jp>
+Wakou Aoyama <wakou@ruby-lang.org>
@@ -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: