summaryrefslogtreecommitdiff
path: root/src/frontend.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend.erl')
-rw-r--r--src/frontend.erl25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/frontend.erl b/src/frontend.erl
index 3924fb8..0144041 100644
--- a/src/frontend.erl
+++ b/src/frontend.erl
@@ -147,13 +147,32 @@ request(post, "catlfish/merge/verifyroot", Input) ->
end
end;
-%% implement setverifiedsize
-
request(get, "catlfish/merge/verifiedsize", _Query) ->
Size = db:verifiedsize(),
success({[{result, <<"ok">>},
{size, Size}]});
+request(post, "catlfish/merge/setverifiedsize", Input) ->
+ case (catch mochijson2:decode(Input)) of
+ {error, E} ->
+ html("setverifiedsize: bad input:", E);
+ {struct, PropList} ->
+ OldSize = db:verifiedsize(),
+ Treesize = proplists:get_value(<<"size">>, PropList),
+ Indexsize = db:indexsize(),
+
+ if
+ Treesize > Indexsize ->
+ html("Has too few entries", Indexsize);
+ OldSize > Treesize ->
+ success({[{result, <<"ok">>}]});
+ true ->
+ db:set_verifiedsize(Treesize),
+ success({[{result, <<"ok">>}]})
+ end
+ end;
+
+
request(get, "catlfish/merge/missingentries", _Query) ->
Size = db:verifiedsize(),
Missing = fetchmissingentries(Size),
@@ -192,8 +211,10 @@ check_entries(Entries, Start, End) ->
check_entries_noreverse(Entries, Start, End) ->
lists:foldl(fun ({Hash, Index}, Acc) ->
+ lager:info("checking entry ~p", [Index]),
case check_entry_noreverse(Hash, Index) of
ok ->
+ lager:info("entry ~p is correct", [Index]),
Acc;
Error ->
[Error | Acc]