diff options
Diffstat (limited to 'merge/src/merge_util.erl')
-rw-r--r-- | merge/src/merge_util.erl | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/merge/src/merge_util.erl b/merge/src/merge_util.erl index 4a4340d..1df1409 100644 --- a/merge/src/merge_util.erl +++ b/merge/src/merge_util.erl @@ -4,7 +4,7 @@ -module(merge_util). -export([sendlog/4, sendentries/3]). -export([request/2, request/4]). --export([readfile/1, verify_logorder_and_fetched_consistency/2]). +-export([readfile/1, nfetched/0]). request(DebugTag, URL) -> request(DebugTag, URL, [], <<>>). @@ -87,13 +87,31 @@ readfile(FileInConfig) -> noentry end. -verify_logorder_and_fetched_consistency(Index, Hash) -> - HashString = binary_to_list(Hash), +nfetched() -> + {Index, Hash} = read_fetched(), + case Index >= 0 of + true -> + ok = verify_logorder_entry(Index, binary_to_list(Hash)); + false -> + ok + end, + Index + 1. + +read_fetched() -> + case merge_util:readfile(fetched_path) of + noentry -> + {-1, <<>>}; + {struct, PropList} -> + {proplists:get_value(<<"index">>, PropList), + proplists:get_value(<<"hash">>, PropList)} + end. + +verify_logorder_entry(Index, HashAsString) -> case hex:bin_to_hexstr(index:get(logorder, Index)) of - HashString -> + HashAsString -> ok; Mismatch -> - lager:error("fetched file hash=~p doesn't match logorder[~B]=~p", - [HashString, Index, Mismatch]), - fetched_mismatch + lager:error("hash in fetched file ~p doesn't match logorder[~B]=~p", + [HashAsString, Index, Mismatch]), + mismatch end. |