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