There is no C version of ‘::each_cgi’ Note: for ruby-1.6.8 at least, the constants CGI_PARAMS/CGI_COOKIES are defined within module ‘CGI’, even if you have subclassed it
Record types
FCGI_BEGIN_REQUEST.flags
FCGI_END_REQUEST.protocolStatus
FCGI_BEGIN_REQUSET.role
# File lib/fcgi.rb, line 48 def self::default_connection ::Socket.for_fd($stdin.fileno) end
# File lib/fcgi.rb, line 34 def self::each(&block) f = default_connection() Server.new(f).each_request(&block) ensure f.close if f end
# File lib/fcgi.rb, line 567 def self::each_cgi(*args) require 'cgi' eval(" class CGI public :env_table def self::remove_params if (const_defined?(:CGI_PARAMS)) remove_const(:CGI_PARAMS) remove_const(:CGI_COOKIES) end end end # ::CGI class class FCGI class CGI < ::CGI def initialize(request, *args) ::CGI.remove_params @request = request super(*args) @args = *args end def args @args end def env_table @request.env end def stdinput @request.in end def stdoutput @request.out end end # FCGI::CGI class end # FCGI class ",TOPLEVEL_BINDING) if FCGI::is_cgi? yield ::CGI.new(*args) else exit_requested = false FCGI::each {|request| $stdout, $stderr = request.out, request.err yield CGI.new(request, *args) request.finish } end end
# File lib/fcgi.rb, line 41 def self::each_request(&block) f = default_connection() Server.new(f).each_request(&block) ensure f.close if f end
# File lib/fcgi.rb, line 22 def self::is_cgi? begin s = Socket.for_fd($stdin.fileno) s.getpeername false rescue Errno::ENOTCONN false rescue Errno::ENOTSOCK, Errno::EINVAL true end end