summaryrefslogtreecommitdiff
path: root/plugins/Db3x_mmap
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Db3x_mmap')
-rw-r--r--plugins/Db3x_mmap/src/dbheaders.cpp14
-rw-r--r--plugins/Db3x_mmap/src/dbintf.cpp2
-rw-r--r--plugins/Db3x_mmap/src/dbintf.h3
-rw-r--r--plugins/Db3x_mmap/src/init.cpp2
-rw-r--r--plugins/Db3x_mmap/src/version.h2
5 files changed, 14 insertions, 9 deletions
diff --git a/plugins/Db3x_mmap/src/dbheaders.cpp b/plugins/Db3x_mmap/src/dbheaders.cpp
index f279b98cfa..005b0022ec 100644
--- a/plugins/Db3x_mmap/src/dbheaders.cpp
+++ b/plugins/Db3x_mmap/src/dbheaders.cpp
@@ -57,15 +57,16 @@ int CDb3Mmap::CreateDbHeaders(const DBSignature& _sign)
static TCHAR tszOldHeaders[] =
LPGENT("This profile is too old to be updated with PluginUpdater, your database must be converted first.\n\nWould you like to read how to fix this?");
-int CDb3Mmap::CheckDbHeaders()
+int CDb3Mmap::CheckDbHeaders(bool bInteractive)
{
if (memcmp(m_dbHeader.signature, &dbSignatureU, sizeof(m_dbHeader.signature)) &&
memcmp(m_dbHeader.signature, &dbSignatureE, sizeof(m_dbHeader.signature)))
{
if (!memcmp(&m_dbHeader.signature, &dbSignatureIM, sizeof(m_dbHeader.signature)) ||
- !memcmp(&m_dbHeader.signature, &dbSignatureSA, sizeof(m_dbHeader.signature)) ||
- !memcmp(&m_dbHeader.signature, &dbSignatureSD, sizeof(m_dbHeader.signature)))
- {
+ !memcmp(&m_dbHeader.signature, &dbSignatureSA, sizeof(m_dbHeader.signature)))
+ return EGROKPRF_OBSOLETE;
+
+ if (bInteractive && !memcmp(&m_dbHeader.signature, &dbSignatureSD, sizeof(m_dbHeader.signature))) {
if (IDYES == MessageBox(NULL, TranslateTS(tszOldHeaders), TranslateT("Obsolete database format"), MB_YESNO | MB_ICONWARNING)) {
TCHAR tszCurPath[MAX_PATH];
GetModuleFileName(NULL, tszCurPath, SIZEOF(tszCurPath));
@@ -87,9 +88,12 @@ int CDb3Mmap::CheckDbHeaders()
}
switch (m_dbHeader.version) {
+ case DB_OLD_VERSION:
case DB_094_VERSION:
- case DB_095_1_VERSION:
case DB_095_VERSION:
+ return EGROKPRF_OBSOLETE;
+
+ case DB_095_1_VERSION:
break;
default:
diff --git a/plugins/Db3x_mmap/src/dbintf.cpp b/plugins/Db3x_mmap/src/dbintf.cpp
index 28107e7cee..5b1b8e9712 100644
--- a/plugins/Db3x_mmap/src/dbintf.cpp
+++ b/plugins/Db3x_mmap/src/dbintf.cpp
@@ -185,7 +185,7 @@ int CDb3Mmap::Create()
int CDb3Mmap::PrepareCheck()
{
- int ret = CheckDbHeaders();
+ int ret = CheckDbHeaders(true);
if (ret != ERROR_SUCCESS)
return ret;
diff --git a/plugins/Db3x_mmap/src/dbintf.h b/plugins/Db3x_mmap/src/dbintf.h
index 1477bf27f2..f6f0f5f6de 100644
--- a/plugins/Db3x_mmap/src/dbintf.h
+++ b/plugins/Db3x_mmap/src/dbintf.h
@@ -47,6 +47,7 @@ DBHeader
#define DBMODE_SHARED 0x0001
#define DBMODE_READONLY 0x0002
+#define DB_OLD_VERSION 0x00000700u
#define DB_094_VERSION 0x00000701u
#define DB_095_VERSION 0x00000800u
#define DB_095_1_VERSION 0x00000801u
@@ -188,7 +189,7 @@ struct CDb3Mmap : public MIDatabase, public MIDatabaseChecker, public MZeroedObj
int Load(bool bSkipInit);
int Create(void);
int CreateDbHeaders(const DBSignature&);
- int CheckDbHeaders();
+ int CheckDbHeaders(bool bInteractive);
void ToggleEncryption(void);
void StoreKey(void);
diff --git a/plugins/Db3x_mmap/src/init.cpp b/plugins/Db3x_mmap/src/init.cpp
index 928ec0739f..debdbba05b 100644
--- a/plugins/Db3x_mmap/src/init.cpp
+++ b/plugins/Db3x_mmap/src/init.cpp
@@ -63,7 +63,7 @@ static int grokHeader(const TCHAR *profile)
if (db->Load(true) != ERROR_SUCCESS)
return EGROKPRF_CANTREAD;
- return db->CheckDbHeaders();
+ return db->CheckDbHeaders(false);
}
// returns 0 if all the APIs are injected otherwise, 1
diff --git a/plugins/Db3x_mmap/src/version.h b/plugins/Db3x_mmap/src/version.h
index f625baeeeb..3622fa9133 100644
--- a/plugins/Db3x_mmap/src/version.h
+++ b/plugins/Db3x_mmap/src/version.h
@@ -1,7 +1,7 @@
#define __MAJOR_VERSION 0
#define __MINOR_VERSION 95
#define __RELEASE_NUM 1
-#define __BUILD_NUM 1
+#define __BUILD_NUM 2
#include <stdver.h>