summaryrefslogtreecommitdiff
path: root/src/storage.erl
diff options
context:
space:
mode:
authorMagnus Ahltorp <map@kth.se>2015-07-31 23:33:25 +0200
committerMagnus Ahltorp <map@kth.se>2015-07-31 23:33:25 +0200
commit329490ec8167ffe5b2bd8a390ae4d34fd8b808c0 (patch)
treeec8c95d1b4c553d8c492cbac74d3b57ac9dc4640 /src/storage.erl
parent99f4a7e5bb46293bebc7815c683befeda24bf977 (diff)
Use lastverifiednewentry file when reading new entries
Diffstat (limited to 'src/storage.erl')
-rw-r--r--src/storage.erl12
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),