Methods
- #
- A
- C
- E
- G
- I
- N
- P
- R
- S
Included Modules
Class Public methods
new(config, env, stdin, stdout)
Link
# File ../ruby/lib/webrick/cgi.rb, line 126 def initialize(config, env, stdin, stdout) @config = config @env = env @header_part = StringIO.new @body_part = stdin @out_port = stdout @out_port.binmode @server_addr = @env["SERVER_ADDR"] || "0.0.0.0" @server_name = @env["SERVER_NAME"] @server_port = @env["SERVER_PORT"] @remote_addr = @env["REMOTE_ADDR"] @remote_host = @env["REMOTE_HOST"] || @remote_addr @remote_port = @env["REMOTE_PORT"] || 0 begin @header_part << request_line << CRLF setup_header @header_part << CRLF @header_part.rewind rescue Exception raise CGIError, "invalid CGI environment" end end
Instance Public methods
<<(data)
Link
addr()
Link
cert()
Link
cipher()
Link
each()
Link
eof?()
Link
gets(eol=LF, size=nil)
Link
peer_cert()
Link
peer_cert_chain()
Link
# File ../ruby/lib/webrick/cgi.rb, line 233 def peer_cert_chain return nil unless defined?(OpenSSL) if @env["SSL_CLIENT_CERT_CHAIN_0"] keys = @env.keys certs = keys.sort.collect{|k| if /^SSL_CLIENT_CERT_CHAIN_\d+$/ =~ k if pem = @env[k] OpenSSL::X509::Certificate.new(pem) unless pem.empty? end end } certs.compact end end
peeraddr()
Link
read(size=nil)
Link
Instance Private methods
add_header(hdrname, value)
Link
input()
Link
request_line()
Link
# File ../ruby/lib/webrick/cgi.rb, line 151 def request_line meth = @env["REQUEST_METHOD"] || "GET" unless url = @env["REQUEST_URI"] url = (@env["SCRIPT_NAME"] || File.expand_path($0)).dup url << @env["PATH_INFO"].to_s url = WEBrick::HTTPUtils.escape_path(url) if query_string = @env["QUERY_STRING"] unless query_string.empty? url << "?" << query_string end end end # we cannot get real HTTP version of client ;) httpv = @config[:HTTPVersion] return "#{meth} #{url} HTTP/#{httpv}" end