diff options
author | Linus Nordberg <linus@nordu.net> | 2017-02-10 23:10:08 +0100 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2017-02-10 23:10:43 +0100 |
commit | 98477712c0d9ed067f10a1e86c1276494f295fcf (patch) | |
tree | 7f8ccd9de7b658cbce66b528f591c5069810877a /merge/src/merge_sth.erl | |
parent | dd7386a664cff92e52d3d991ecae118e7c094ff6 (diff) |
Always load the tree before getting the root.
The case where this is necessary is when we have zero merge
secondaries and thus no merge_backup processes loading the tree for
us.
Diffstat (limited to 'merge/src/merge_sth.erl')
-rw-r--r-- | merge/src/merge_sth.erl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/merge/src/merge_sth.erl b/merge/src/merge_sth.erl index 3dffaca..9e9486c 100644 --- a/merge/src/merge_sth.erl +++ b/merge/src/merge_sth.erl @@ -81,7 +81,7 @@ do_make_sth(Size) -> %% verify both the new sth file against the signature and the new %% root against ht before writing to disk. NewTimestamp = plop:generate_timestamp(), - NewRoot = ht:root(Size - 1), + NewRoot = root(Size), PackedSignature = make_signature(NewTimestamp, Size, NewRoot), ok = case plop:verify_sth(Size, NewTimestamp, NewRoot, PackedSignature) of true -> @@ -134,8 +134,7 @@ verified_size(Path) -> end. validate_tree_head(Treesize, Roothash) -> - ht:load_tree(Treesize - 1), - ok = case ht:root(Treesize - 1) of + ok = case root(Treesize) of Roothash -> ok; RoothashInTree -> @@ -155,3 +154,7 @@ read_sth_treesize() -> true = plop:verify_sth(Treesize, Timestamp, RootHash, Signature), Treesize end. + +root(TreeSize) -> + ht:load_tree(TreeSize - 1), + ht:root(TreeSize - 1). |