summaryrefslogtreecommitdiff
path: root/src/frontend.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend.erl')
-rw-r--r--src/frontend.erl13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/frontend.erl b/src/frontend.erl
index 9c69517..6fc2fd5 100644
--- a/src/frontend.erl
+++ b/src/frontend.erl
@@ -41,6 +41,7 @@ request(post, "ct/frontend/sendsth", Input) ->
{struct, PropList} ->
OldSize = db:size(),
Treesize = proplists:get_value(<<"tree_size">>, PropList),
+ RootHash = base64:decode(proplists:get_value(<<"sha256_root_hash">>, PropList)),
Indexsize = db:indexsize(),
if
@@ -59,9 +60,15 @@ request(post, "ct/frontend/sendsth", Input) ->
case Errors of
[] ->
- ok = db:set_treesize(Treesize),
- ht:reset_tree([db:size() - 1]),
- success({[{result, <<"ok">>}]});
+ ht:load_tree(Treesize - 1),
+ OwnRootHash = ht:root(Treesize - 1),
+ case OwnRootHash of
+ RootHash ->
+ ok = db:set_treesize(Treesize),
+ success({[{result, <<"ok">>}]});
+ _ ->
+ html("Root hash not the same", hex:bin_to_hexstr(OwnRootHash))
+ end;
_ ->
html("Database not complete", Errors)
end