Class WEBrick::CGI::Socket
In: webrick/cgi.rb
Parent: Object

Methods

<<   addr   cert   cipher   each   gets   new   peer_cert   peer_cert_chain   peeraddr   read  

Included Modules

Public Class methods

[Source]

     # File webrick/cgi.rb, line 126
126:       def initialize(config, env, stdin, stdout)
127:         @config = config
128:         @env = env
129:         @header_part = StringIO.new
130:         @body_part = stdin
131:         @out_port = stdout
132:         @out_port.binmode
133:   
134:         @server_addr = @env["SERVER_ADDR"] || "0.0.0.0"
135:         @server_name = @env["SERVER_NAME"]
136:         @server_port = @env["SERVER_PORT"]
137:         @remote_addr = @env["REMOTE_ADDR"]
138:         @remote_host = @env["REMOTE_HOST"] || @remote_addr
139:         @remote_port = @env["REMOTE_PORT"] || 0
140: 
141:         begin
142:           @header_part << request_line << CRLF
143:           setup_header
144:           @header_part << CRLF
145:           @header_part.rewind
146:         rescue Exception => ex
147:           raise CGIError, "invalid CGI environment"
148:         end
149:       end

Public Instance methods

[Source]

     # File webrick/cgi.rb, line 212
212:       def <<(data)
213:         @out_port << data
214:       end

[Source]

     # File webrick/cgi.rb, line 196
196:       def addr
197:         [nil, @server_port, @server_name, @server_addr]
198:       end

[Source]

     # File webrick/cgi.rb, line 216
216:       def cert
217:         return nil unless defined?(OpenSSL)
218:         if pem = @env["SSL_SERVER_CERT"]
219:           OpenSSL::X509::Certificate.new(pem) unless pem.empty?
220:         end
221:       end

[Source]

     # File webrick/cgi.rb, line 245
245:       def cipher
246:         return nil unless defined?(OpenSSL)
247:         if cipher = @env["SSL_CIPHER"]
248:           ret = [ cipher ]
249:           ret << @env["SSL_PROTOCOL"]
250:           ret << @env["SSL_CIPHER_USEKEYSIZE"]
251:           ret << @env["SSL_CIPHER_ALGKEYSIZE"]
252:           ret
253:         end
254:       end

[Source]

     # File webrick/cgi.rb, line 208
208:       def each
209:         input.each{|line| yield(line) }
210:       end

[Source]

     # File webrick/cgi.rb, line 200
200:       def gets(eol=LF)
201:         input.gets(eol)
202:       end

[Source]

     # File webrick/cgi.rb, line 223
223:       def peer_cert
224:         return nil unless defined?(OpenSSL)
225:         if pem = @env["SSL_CLIENT_CERT"]
226:           OpenSSL::X509::Certificate.new(pem) unless pem.empty?
227:         end
228:       end

[Source]

     # File webrick/cgi.rb, line 230
230:       def peer_cert_chain
231:         return nil unless defined?(OpenSSL)
232:         if @env["SSL_CLIENT_CERT_CHAIN_0"]
233:           keys = @env.keys
234:           certs = keys.sort.collect{|k|
235:             if /^SSL_CLIENT_CERT_CHAIN_\d+$/ =~ k
236:               if pem = @env[k]
237:                 OpenSSL::X509::Certificate.new(pem) unless pem.empty?
238:               end
239:             end
240:           }
241:           certs.compact
242:         end
243:       end

[Source]

     # File webrick/cgi.rb, line 192
192:       def peeraddr
193:         [nil, @remote_port, @remote_host, @remote_addr]
194:       end

[Source]

     # File webrick/cgi.rb, line 204
204:       def read(size=nil)
205:         input.read(size)
206:       end

Search

Google

Ruby API Docs

Links