summaryrefslogtreecommitdiff
path: root/merge/src/merge_util.erl
diff options
context:
space:
mode:
Diffstat (limited to 'merge/src/merge_util.erl')
-rw-r--r--merge/src/merge_util.erl32
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.