diff options
Diffstat (limited to 'merge/src/merge_util.erl')
-rw-r--r-- | merge/src/merge_util.erl | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/merge/src/merge_util.erl b/merge/src/merge_util.erl index 388c627..0e19e90 100644 --- a/merge/src/merge_util.erl +++ b/merge/src/merge_util.erl @@ -68,18 +68,16 @@ sendentries_chunk(_, {[], _}, _) -> ok; sendentries_chunk(NodeAddress, {Chunk, Rest}, Chunksize) -> lager:debug("sending entries chunk: N=~B", [length(Chunk)]), - Entries = [db:entry_for_leafhash(H) || H <- Chunk], - HashesAndEntries = lists:zip(Chunk, Entries), - case lists:member(noentry, Entries) of - true -> - Missing = lists:keysearch(noentry, 2, HashesAndEntries), - lager:error("Entries not in db: ~p", [Missing]), - {error, entrynotindb}; + HashesAndEntries = lists:zip(Chunk, [db:entry_for_leafhash(H) || H <- Chunk]), + case lists:keysearch(noentry, 2, HashesAndEntries) of false -> ok = sendentries_request(NodeAddress, HashesAndEntries), sendentries_chunk(NodeAddress, lists:split(min(Chunksize, length(Rest)), Rest), - Chunksize) + Chunksize); + Missing -> + lager:error("Entries not in db: ~p", [Missing]), + {error, entrynotindb} end. sendentries_request(NodeAddress, HashesAndEntries) -> |