/usr/lib/ruby/1.8/mechanize/chain/response_reader.rb is in libwww-mechanize-ruby1.8 1.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | class Mechanize
class Chain
class ResponseReader
include Mechanize::Handler
def initialize(response)
@response = response
end
def handle(ctx, params)
params[:response] = @response
body = StringIO.new
total = 0
@response.read_body { |part|
total += part.length
body.write(part)
Mechanize.log.debug("Read #{total} bytes") if Mechanize.log
}
body.rewind
res_klass = Net::HTTPResponse::CODE_TO_OBJ[@response.code.to_s]
raise ResponseCodeError.new(@response) unless res_klass
# Net::HTTP ignores EOFError if Content-length is given, so we emulate it here.
unless res_klass <= Net::HTTPRedirection
raise EOFError if (!params[:request].is_a?(Net::HTTP::Head)) && @response.content_length() && @response.content_length() != total
end
@response.each_header { |k,v|
Mechanize.log.debug("response-header: #{ k } => #{ v }")
} if Mechanize.log
params[:response_body] = body
params[:res_klass] = res_klass
super
end
end
end
end
|