diff --git a/src/machi_flu1.erl b/src/machi_flu1.erl index ab4e91a..7696abf 100644 --- a/src/machi_flu1.erl +++ b/src/machi_flu1.erl @@ -926,7 +926,9 @@ encode_csum_file_entry_bin(Offset, Size, TaggedCSum) -> -spec decode_csum_file_entry(binary()) -> {machi_dt:file_offset(), machi_dt:chunk_size(), machi_dt:chunk_s()}. decode_csum_file_entry(<<_:8/unsigned-big, Offset:64/unsigned-big, Size:32/unsigned-big, TaggedCSum/binary>>) -> - {Offset, Size, TaggedCSum}. + {Offset, Size, TaggedCSum}; +decode_csum_file_entry(_Else) -> + error. %% @doc Split a `binary()' blob of `checksum_list' data into a list of %% unparsed `binary()' blobs, one per entry. @@ -962,7 +964,12 @@ split_checksum_list_blob_decode(Bin) -> split_checksum_list_blob_decode(<>, Acc)-> One = <>, - split_checksum_list_blob_decode(Rest, [decode_csum_file_entry(One)|Acc]); + case decode_csum_file_entry(One) of + error -> + split_checksum_list_blob_decode(Rest, Acc); + DecOne -> + split_checksum_list_blob_decode(Rest, [DecOne|Acc]) + end; split_checksum_list_blob_decode(Rest, Acc) -> {lists:reverse(Acc), Rest}. diff --git a/src/machi_yessir_client.erl b/src/machi_yessir_client.erl index d63aa2a..a833f74 100644 --- a/src/machi_yessir_client.erl +++ b/src/machi_yessir_client.erl @@ -178,9 +178,10 @@ checksum_list(#yessir{name=Name,chunk_size=ChunkSize}, _EpochID, File) -> undefined -> {error, no_such_file}; MaxOffset -> - CSum = make_csum(Name, ChunkSize), - Cs = [{Offset, ChunkSize, CSum} || - Offset <- lists:seq(?MINIMUM_OFFSET, MaxOffset, ChunkSize)], + C = machi_util:make_tagged_csum(client_sha, + make_csum(Name, ChunkSize)), + Cs = [machi_flu1:encode_csum_file_entry_bin(Offset, ChunkSize, C) || + Offset <- lists:seq(?MINIMUM_OFFSET, MaxOffset, ChunkSize)], {ok, Cs} end.