def run(request, response)
headers = request.meta_vars
input = request.instance_variable_get('@socket')
request.instance_variable_set('@socket', nil)
params = CGIKit::Utilities.query_from_headers(headers, input)
ckrequest = CGIKit::Request.new(headers, params)
if block_given?
ckresponse = yield(ckrequest)
end
response.request_http_version = ckresponse.http_version
response.status = ckresponse.status
ckresponse.headers.each{|key, val|
if LEAVE_HEADER[key]
response[key] = val
end
}
response['Content-Type'] = ckresponse.headers['Content-Type']
if ckresponse.encoding
response['Content-Type'] << "; charset=#{ckresponse.encoding}"
end
ckresponse.cookies.each{|cookie|
response.cookies << cookie
}
response.body = ckresponse.content
end