def read_body(remain, total, dispatcher)
begin
remain -= @body.write(read_socket(remain % Const::CHUNK_SIZE))
dispatcher.request_progress(params, remain, total) if dispatcher
until remain <= 0 or @socket.closed?
remain -= @body.write(read_socket(Const::CHUNK_SIZE))
dispatcher.request_progress(params, remain, total) if dispatcher
end
rescue Object
STDERR.puts "ERROR reading http body: #$!"
$!.backtrace.join("\n")
@socket.close rescue Object
@body.delete if @body.class == Tempfile
@body = nil
end
end