From 329490ec8167ffe5b2bd8a390ae4d34fd8b808c0 Mon Sep 17 00:00:00 2001 From: Magnus Ahltorp Date: Fri, 31 Jul 2015 23:33:25 +0200 Subject: Use lastverifiednewentry file when reading new entries --- src/storage.erl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/storage.erl') 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), -- cgit v1.1