dirmngr: Improve domaininfo cache update algorithm.
authorWerner Koch <wk@gnupg.org>
Tue, 2 Apr 2019 11:22:32 +0000 (13:22 +0200)
committerWerner Koch <wk@gnupg.org>
Tue, 2 Apr 2019 11:22:32 +0000 (13:22 +0200)
commite100ace7f8a729bbe30d9f4ed157a7a229a04eb0
treec24d6b6e77bfcaf10f899434ba0a55d664371ee3
parent9ed1aa56c4bbf44e00b731d6807ada9e95c91bd7
dirmngr: Improve domaininfo cache update algorithm.

* dirmngr/domaininfo.c (struct domaininfo_s): Add field keepmark.
(insert_or_update): Implement new update algorithm.

--

The old algorithm limited the length of a bucket chain by purging the
last 50% or the entries.  Thus the first domains entered into the
cache were never purged.  The new algorithm is a bit better: It also
limits the chain length on overflow to 50% but tries to keep the
entries indicating that a WKD is available in the cache.  If there is
still space to keep more, those which clearly do not support WKD are
also kept.

Signed-off-by: Werner Koch <wk@gnupg.org>
dirmngr/domaininfo.c