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 53 def self.default_connection ::Socket.for_fd($stdin.fileno) end
# File lib/fcgi.rb, line 39 def self.each(&block) f = default_connection() Server.new(f).each_request(&block) ensure f.close if f end
# File lib/fcgi.rb, line 588 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 do |request| $stdout, $stderr = request.out, request.err yield CGI.new(request, *args) request.finish end end end
# File lib/fcgi.rb, line 46 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 27 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