summaryrefslogtreecommitdiff
path: root/ftparchive/cachedb.h
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2014-06-10 14:46:02 +0200
committerMichael Vogt <mvo@debian.org>2014-06-10 14:46:02 +0200
commitc0a5e4644c8cf77feb035cfe8961f40099e1e3c6 (patch)
treee8fdb48b4008ca4d909b2e84d100f42693f011b4 /ftparchive/cachedb.h
parentc76af2fce4724977408c119452eab545b69a2d3b (diff)
parent243b2a381f4a12939d91084ecf100ee6d3dcb007 (diff)
Merge remote-tracking branch 'mvo/bugfix/lp1274466-cache' into debian/sid
Diffstat (limited to 'ftparchive/cachedb.h')
-rw-r--r--ftparchive/cachedb.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/ftparchive/cachedb.h b/ftparchive/cachedb.h
index edb8594bf..29d710d2c 100644
--- a/ftparchive/cachedb.h
+++ b/ftparchive/cachedb.h
@@ -85,8 +85,12 @@ class CacheDB
bool OpenDebFile();
void CloseDebFile();
- bool GetFileStat(bool const &doStat = false);
+ // GetCurStat needs some compat code, see lp #1274466)
+ bool GetCurStatCompatOldFormat();
+ bool GetCurStatCompatNewFormat();
bool GetCurStat();
+
+ bool GetFileStat(bool const &doStat = false);
bool LoadControl();
bool LoadContents(bool const &GenOnly);
bool LoadSource();
@@ -101,6 +105,20 @@ class CacheDB
FlSHA512=(1<<6), FlSource=(1<<7),
};
+ // the on-disk format changed (FileSize increased to 64bit) in
+ // commit 650faab0 which will lead to corruption with old caches
+ struct StatStoreOldFormat
+ {
+ uint32_t Flags;
+ uint32_t mtime;
+ uint32_t FileSize;
+ uint8_t MD5[16];
+ uint8_t SHA1[20];
+ uint8_t SHA256[32];
+ } CurStatOldFormat;
+
+ // WARNING: this struct is read/written to the DB so do not change the
+ // layout of the fields (see lp #1274466), only append to it
struct StatStore
{
uint32_t Flags;