3 require 'unicorn/preread_input'
4 use Unicorn::PrereadInput
7 $stderr.write "app dispatch: #{nr += 1}\n"
8 input = env["rack.input"]
10 if buf = input.read(16384)
13 end while input.read(16384, buf)
14 buf.clear # remove this call if Ruby ever gets escape analysis
16 if env['HTTP_TRAILER'] =~ /\bContent-MD5\b/i
17 cmd5_b64 = env['HTTP_CONTENT_MD5'] or return [500, {}, ['No Content-MD5']]
18 cmd5_bin = cmd5_b64.unpack('m')[0]
19 return [500, {}, [ cmd5_b64 ] ] if cmd5_bin != dig.digest
21 [ 200, {}, [ dig.hexdigest ] ]