# File lib/merb-core/rack/handler/mongrel.rb, line 51
        def process(request, response)
          env = {}.replace(request.params)
          env.delete "HTTP_CONTENT_TYPE"
          env.delete "HTTP_CONTENT_LENGTH"
  
          env["SCRIPT_NAME"] = ""  if env["SCRIPT_NAME"] == "/"
  
          env.update({"rack.version" => [0,1],
                       "rack.input" => request.body || StringIO.new(""),
                       "rack.errors" => STDERR,
  
                       "rack.multithread" => true,
                       "rack.multiprocess" => false, # ???
                       "rack.run_once" => false,
  
                       "rack.url_scheme" => "http",
                       "rack.streaming" => true
                     })
          env["QUERY_STRING"] ||= ""
          env.delete "PATH_INFO"  if env["PATH_INFO"] == ""
  
          status, headers, body = @app.call(env)
  
          begin
            response.status = status.to_i
            headers.each { |k, vs|
              vs.each { |v|
                response.header[k] = v
              }
            }
            
            if Proc === body
              body.call(response)
            else  
              body.each { |part|
                response.body << part
              }
            end
            response.finished
          ensure
            body.close  if body.respond_to? :close
          end
        end