diff options
author | Magnus Ahltorp <map@kth.se> | 2015-07-31 23:33:25 +0200 |
---|---|---|
committer | Magnus Ahltorp <map@kth.se> | 2015-07-31 23:33:25 +0200 |
commit | 329490ec8167ffe5b2bd8a390ae4d34fd8b808c0 (patch) | |
tree | ec8c95d1b4c553d8c492cbac74d3b57ac9dc4640 /src/storage.erl | |
parent | 99f4a7e5bb46293bebc7815c683befeda24bf977 (diff) |
Use lastverifiednewentry file when reading new entriesstoragegc
Diffstat (limited to 'src/storage.erl')
-rw-r--r-- | src/storage.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/storage.erl b/src/storage.erl index e208d9b..5774f2a 100644 --- a/src/storage.erl +++ b/src/storage.erl @@ -30,8 +30,16 @@ request(post, "ct/storage/entrycommitted", Input) -> success({[{result, <<"ok">>}]}) end; request(get, "ct/storage/fetchnewentries", _Input) -> - NewHashes = storagedb:fetchnewhashes(0), - % XXX send only hashes, implement getentry + {LastIndexOrZero, LastHash} = storagedb:lastverifiednewentry(), + LastVerifiedAndNewHashes = storagedb:fetchnewhashes(LastIndexOrZero), + NewHashes = case {LastHash, LastVerifiedAndNewHashes} of + {none, LastVerifiedAndNewHashes} -> + LastVerifiedAndNewHashes; + {Hash1, [Hash2|Rest]} when Hash1 == Hash2 -> + Rest; + _ -> + exit({internalerror, "Incorrect lastverifiedentry"}) + end, Entries = lists:map(fun(LeafHash) -> base64:encode(LeafHash) end, NewHashes), |