Browse Source

Check for cached hash entries to determine which (if any) hash types

need to be generated for the current file.
In 1.0.9, each hash type was handled by a separate method, each of
which checked the cache. It looks like when these code paths were
unified (in a311fb96b8) the cache
checks were not incorporated into the new method.
tags/debian/1.3_exp3
Dominic Benson 5 years ago
parent
commit
51018e947a
1 changed files with 18 additions and 1 deletions
  1. +18
    -1
      ftparchive/cachedb.cc

+ 18
- 1
ftparchive/cachedb.cc View File

@@ -434,7 +434,24 @@ static void hex2bytes(uint8_t *bytes, const char *hex, int length) {
}
bool CacheDB::GetHashes(bool const GenOnly, unsigned int const DoHashes)
{
unsigned int FlHashes = DoHashes & (Hashes::MD5SUM | Hashes::SHA1SUM | Hashes::SHA256SUM | Hashes::SHA512SUM);
unsigned int notCachedHashes = 0;
if ((CurStat.Flags & FlMD5) != FlMD5)
{
notCachedHashes = notCachedHashes | Hashes::MD5SUM;
}
if ((CurStat.Flags & FlSHA1) != FlSHA1)
{
notCachedHashes = notCachedHashes | Hashes::SHA1SUM;
}
if ((CurStat.Flags & FlSHA256) != FlSHA256)
{
notCachedHashes = notCachedHashes | Hashes::SHA256SUM;
}
if ((CurStat.Flags & FlSHA512) != FlSHA512)
{
notCachedHashes = notCachedHashes | Hashes::SHA512SUM;
}
unsigned int FlHashes = DoHashes & notCachedHashes;
HashesList.clear();

if (FlHashes != 0)


Loading…
Cancel
Save