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').strip
24 if @expect_md5.respond_to?(:call)
25 expect = @expect_md5.call
26 if expect != content_md5
27 raise MogileFS::ChecksumMismatchError,
28 "expected: #{expect.inspect} actual: #{content_md5.inspect}"
31 warn "Content-MD5: #{content_md5}\r\n" if $DEBUG
32 @io.write("0\r\nContent-MD5: #{content_md5}\r\n\r\n")
34 @io.write("0\r\n\r\n")