Report abuse


			
class Grizzlet
  def service(req)
    setup_logger
    info        = req.getRequestProcessor()
    request_uri = req.requestURI.to_s
    headers     = req.getMimeHeaders()

    # RFC3875 The Common Gateway Interface (CGI) Version 1.1
    #ENV['AUTH_TYPE']      = req.getAuthType().to_s
    ENV['CONTENT_LENGTH']    = info.content_length().to_s
    ENV['CONTENT_TYPE']      = req.content_type()

    ENV['GATEWAY_INTERFACE'] = 'CGI/1.1'
    ENV['PATH_INFO']         = request_uri
    ENV['PATH_TRANSLATED']   = request_uri.split('?', 2).first
    ENV['QUERY_STRING']      = req.query_string().to_s
    ENV['REMOTE_ADDR']       = info.remote_addr()
    ENV['REMOTE_HOST']       = req.remote_host().to_s
    ENV['REMOTE_USER']       = req.remote_user().to_s

    ENV['REQUEST_METHOD']    = info.method()
    ENV['SCRIPT_NAME']       = ''

    ENV['SERVER_NAME']       = req.server_name().to_s
    ENV['SERVER_PORT']       = req.server_port().to_s
    ENV['SERVER_PROTOCOL']   = req.protocol().to_s
    ENV['SERVER_SOFTWARE']   = 'Grizzly/1.7'
    ENV['REQUEST_URI']       = request_uri

    for i in 0 ... headers.size
      name = headers.name(i).to_s
      value = headers.value(i).to_s
      ENV['HTTP_' + name.upcase.tr('-','_')] = value
    end

    if !$root.nil?
      ActionController::AbstractRequest.relative_url_root = $root
      ActionController::CgiRequest.relative_url_root = $root
    end 

    Dispatcher.dispatch
  end