In Files

  • webrick/cgi.rb

WEBrick::CGI::Socket

Public Class Methods

new(config, env, stdin, stdout) click to toggle source
 
               # File 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 => ex
    raise CGIError, "invalid CGI environment"
  end
end
            

Public Instance Methods

<<(data) click to toggle source
 
               # File webrick/cgi.rb, line 215
def <<(data)
  @out_port << data
end
            
addr() click to toggle source
 
               # File webrick/cgi.rb, line 195
def addr
  [nil, @server_port, @server_name, @server_addr]
end
            
cert() click to toggle source
 
               # File webrick/cgi.rb, line 219
def cert
  return nil unless defined?(OpenSSL)
  if pem = @env["SSL_SERVER_CERT"]
    OpenSSL::X509::Certificate.new(pem) unless pem.empty?
  end
end
            
cipher() click to toggle source
 
               # File webrick/cgi.rb, line 248
def cipher
  return nil unless defined?(OpenSSL)
  if cipher = @env["SSL_CIPHER"]
    ret = [ cipher ]
    ret << @env["SSL_PROTOCOL"]
    ret << @env["SSL_CIPHER_USEKEYSIZE"]
    ret << @env["SSL_CIPHER_ALGKEYSIZE"]
    ret
  end
end
            
each() click to toggle source
 
               # File webrick/cgi.rb, line 207
def each
  input.each{|line| yield(line) }
end
            
eof?() click to toggle source
 
               # File webrick/cgi.rb, line 211
def eof?
  input.eof?
end
            
gets(eol=LF, size=nil) click to toggle source
 
               # File webrick/cgi.rb, line 199
def gets(eol=LF, size=nil)
  input.gets(eol, size)
end
            
peer_cert() click to toggle source
 
               # File webrick/cgi.rb, line 226
def peer_cert
  return nil unless defined?(OpenSSL)
  if pem = @env["SSL_CLIENT_CERT"]
    OpenSSL::X509::Certificate.new(pem) unless pem.empty?
  end
end
            
peer_cert_chain() click to toggle source
 
               # File 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() click to toggle source
 
               # File webrick/cgi.rb, line 191
def peeraddr
  [nil, @remote_port, @remote_host, @remote_addr]
end
            
read(size=nil) click to toggle source
 
               # File webrick/cgi.rb, line 203
def read(size=nil)
  input.read(size)
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus