1 # -*- encoding: binary -*-
2 class MogileFS::Chunker
5 def initialize(io, md5, expect_md5)
8 @expect_md5 = expect_md5
13 @io.write("#{rv.to_s(16)}\r\n")
15 @md5.update(buf) if @md5
16 @io.write("\r\n".freeze)
22 content_md5 = [ @md5.digest ].pack('m').rstrip!
23 if @expect_md5.respond_to?(:call)
24 expect = @expect_md5.call.strip
25 if expect != content_md5
26 raise MogileFS::ChecksumMismatchError,
27 "expected: #{expect.inspect} actual: #{content_md5.inspect}"
30 @io.write("0\r\nContent-MD5: #{content_md5}\r\n\r\n")
32 @io.write("0\r\n\r\n".freeze)