summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2012-09-28 13:13:05 +0000
committerGeorge Hazan <george.hazan@gmail.com>2012-09-28 13:13:05 +0000
commitf3cdb7545b85a2c849ad4acf4dfbf1aaf526de6b (patch)
tree3d56bd83ddcb79373e868f0b9b0378472ffa1905
parent8adf6be866f0c4dbc2689489b04a2aba243cb650 (diff)
database created by dbx_mmap_sa must be opened by it
git-svn-id: http://svn.miranda-ng.org/main/trunk@1714 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--plugins/Db3x/src/commonheaders.h1
-rw-r--r--plugins/Db3x/src/init.cpp2
-rw-r--r--plugins/Db3x_mmap/src/commonheaders.h1
-rw-r--r--plugins/Db3x_mmap/src/dbheaders.cpp22
-rw-r--r--plugins/Db3x_mmap/src/dbintf.h2
-rw-r--r--plugins/Db3x_mmap/src/init.cpp2
-rw-r--r--plugins/Dbx_mmap_SA/src/commonheaders.h2
-rw-r--r--plugins/Dbx_mmap_SA/src/dbintf_sa.cpp3
-rw-r--r--plugins/Dbx_mmap_SA/src/init.cpp2
-rw-r--r--plugins/Dbx_mmap_SA/src/security.cpp2
10 files changed, 20 insertions, 19 deletions
diff --git a/plugins/Db3x/src/commonheaders.h b/plugins/Db3x/src/commonheaders.h
index e12db161bc..4222389e4d 100644
--- a/plugins/Db3x/src/commonheaders.h
+++ b/plugins/Db3x/src/commonheaders.h
@@ -64,3 +64,4 @@ void Encrypt(char*msg,BOOL up);
#endif
extern LIST<CDb3x> g_Dbs;
+extern DBSignature dbSignature; \ No newline at end of file
diff --git a/plugins/Db3x/src/init.cpp b/plugins/Db3x/src/init.cpp
index 513731b824..7831613ef5 100644
--- a/plugins/Db3x/src/init.cpp
+++ b/plugins/Db3x/src/init.cpp
@@ -52,7 +52,7 @@ static int makeDatabase(const TCHAR *profile)
if (db->Create() != ERROR_SUCCESS)
return EMKPRF_CREATEFAILED;
- return db->CreateDbHeaders();
+ return db->CreateDbHeaders(dbSignature);
}
// returns 0 if the given profile has a valid header
diff --git a/plugins/Db3x_mmap/src/commonheaders.h b/plugins/Db3x_mmap/src/commonheaders.h
index a0ad519e4d..72b0b265d9 100644
--- a/plugins/Db3x_mmap/src/commonheaders.h
+++ b/plugins/Db3x_mmap/src/commonheaders.h
@@ -55,6 +55,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "version.h"
extern LIST<CDb3Mmap> g_Dbs;
+extern DBSignature dbSignature;
#ifdef __GNUC__
#define mir_i64(x) (x##LL)
diff --git a/plugins/Db3x_mmap/src/dbheaders.cpp b/plugins/Db3x_mmap/src/dbheaders.cpp
index 68e7da15e1..e2afc03658 100644
--- a/plugins/Db3x_mmap/src/dbheaders.cpp
+++ b/plugins/Db3x_mmap/src/dbheaders.cpp
@@ -25,14 +25,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//the cache has not been loaded when these functions are used
-extern DBSignature dbSignature;
-
-int CDb3Base::CreateDbHeaders()
+int CDb3Base::CreateDbHeaders(const DBSignature& _sign)
{
- DBContact user;
DWORD bytesWritten;
- CopyMemory(m_dbHeader.signature, &dbSignature,sizeof(m_dbHeader.signature));
+ CopyMemory(m_dbHeader.signature, &_sign, sizeof(m_dbHeader.signature));
+
m_dbHeader.version = DB_THIS_VERSION;
m_dbHeader.ofsFileEnd = sizeof(struct DBHeader);
m_dbHeader.slackSpace = 0;
@@ -43,15 +41,13 @@ int CDb3Base::CreateDbHeaders()
//create user
m_dbHeader.ofsUser = m_dbHeader.ofsFileEnd;
m_dbHeader.ofsFileEnd += sizeof(DBContact);
- SetFilePointer(m_hDbFile,0,NULL,FILE_BEGIN);
- WriteFile(m_hDbFile,&m_dbHeader,sizeof(m_dbHeader),&bytesWritten,NULL);
+ SetFilePointer(m_hDbFile, 0, NULL, FILE_BEGIN);
+ WriteFile(m_hDbFile, &m_dbHeader, sizeof(m_dbHeader), &bytesWritten,NULL);
+
+ DBContact user = { 0 };
user.signature = DBCONTACT_SIGNATURE;
- user.ofsNext = 0;
- user.ofsFirstSettings = 0;
- user.eventCount = 0;
- user.ofsFirstEvent = user.ofsLastEvent = 0;
- SetFilePointer(m_hDbFile,m_dbHeader.ofsUser,NULL,FILE_BEGIN);
- WriteFile(m_hDbFile,&user,sizeof(DBContact),&bytesWritten,NULL);
+ SetFilePointer(m_hDbFile, m_dbHeader.ofsUser, NULL, FILE_BEGIN);
+ WriteFile(m_hDbFile, &user, sizeof(DBContact), &bytesWritten, NULL);
FlushFileBuffers(m_hDbFile);
return 0;
}
diff --git a/plugins/Db3x_mmap/src/dbintf.h b/plugins/Db3x_mmap/src/dbintf.h
index 3a744427a8..d5bef059ef 100644
--- a/plugins/Db3x_mmap/src/dbintf.h
+++ b/plugins/Db3x_mmap/src/dbintf.h
@@ -166,7 +166,7 @@ struct CDb3Base : public MIDatabase, public MIDatabaseChecker, public MZeroedObj
int Load(bool bSkipInit);
int Create(void);
- int CreateDbHeaders();
+ int CreateDbHeaders(const DBSignature&);
int CheckDbHeaders();
void DatabaseCorruption(TCHAR *text);
diff --git a/plugins/Db3x_mmap/src/init.cpp b/plugins/Db3x_mmap/src/init.cpp
index 2e2490dc66..bb76ccd3a8 100644
--- a/plugins/Db3x_mmap/src/init.cpp
+++ b/plugins/Db3x_mmap/src/init.cpp
@@ -52,7 +52,7 @@ static int makeDatabase(const TCHAR *profile)
if (db->Create() != ERROR_SUCCESS)
return EMKPRF_CREATEFAILED;
- return db->CreateDbHeaders();
+ return db->CreateDbHeaders(dbSignature);
}
// returns 0 if the given profile has a valid header
diff --git a/plugins/Dbx_mmap_SA/src/commonheaders.h b/plugins/Dbx_mmap_SA/src/commonheaders.h
index 710172c241..6f4aa0b4b3 100644
--- a/plugins/Dbx_mmap_SA/src/commonheaders.h
+++ b/plugins/Dbx_mmap_SA/src/commonheaders.h
@@ -86,7 +86,7 @@ INT_PTR CALLBACK DlgStdNewPass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam)
INT_PTR CALLBACK DlgChangePass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam);
void xModifyMenu(HANDLE hMenu,long flags,const TCHAR* name, HICON hIcon);
-extern DBSignature dbSignature, dbSignatureSecured;
+extern DBSignature dbSignature, dbSignatureSecured, dbSignatureNonSecured;
extern LIST<CDdxMmapSA> g_Dbs;
diff --git a/plugins/Dbx_mmap_SA/src/dbintf_sa.cpp b/plugins/Dbx_mmap_SA/src/dbintf_sa.cpp
index f3c68881a5..b7dec7c908 100644
--- a/plugins/Dbx_mmap_SA/src/dbintf_sa.cpp
+++ b/plugins/Dbx_mmap_SA/src/dbintf_sa.cpp
@@ -32,6 +32,7 @@ extern CDdxMmapSA* g_Db;
int InitDialogs(void);
DBSignature dbSignatureSecured = {"Miranda ICQ SD",0x1A};
+DBSignature dbSignatureNonSecured = {"Miranda ICQ SA",0x1A};
CDdxMmapSA::CDdxMmapSA(const TCHAR* tszFileName) :
CDb3Mmap(tszFileName)
@@ -65,6 +66,8 @@ int CDdxMmapSA::CheckDbHeaders()
{
if ( memcmp(m_dbHeader.signature, &dbSignatureSecured, sizeof(m_dbHeader.signature)) == 0)
m_bEncoding = true;
+ else if ( memcmp(m_dbHeader.signature, &dbSignatureNonSecured, sizeof(m_dbHeader.signature)) == 0)
+ m_bEncoding = false;
else {
m_bEncoding = false;
if ( memcmp(m_dbHeader.signature,&dbSignature,sizeof(m_dbHeader.signature)))
diff --git a/plugins/Dbx_mmap_SA/src/init.cpp b/plugins/Dbx_mmap_SA/src/init.cpp
index cea82f5c79..77bf5dc953 100644
--- a/plugins/Dbx_mmap_SA/src/init.cpp
+++ b/plugins/Dbx_mmap_SA/src/init.cpp
@@ -53,7 +53,7 @@ static int makeDatabase(const TCHAR *profile)
{
std::auto_ptr<CDdxMmapSA> db( new CDdxMmapSA(profile));
if (db->Create() == ERROR_SUCCESS) {
- db->CreateDbHeaders();
+ db->CreateDbHeaders(dbSignatureNonSecured);
return 0;
}
diff --git a/plugins/Dbx_mmap_SA/src/security.cpp b/plugins/Dbx_mmap_SA/src/security.cpp
index 8731e86f81..260ab11727 100644
--- a/plugins/Dbx_mmap_SA/src/security.cpp
+++ b/plugins/Dbx_mmap_SA/src/security.cpp
@@ -233,7 +233,7 @@ void CDdxMmapSA::WritePlainHeader()
{
DWORD bytesWritten;
- memcpy(m_dbHeader.signature, &dbSignature, sizeof(m_dbHeader.signature));
+ memcpy(m_dbHeader.signature, &dbSignatureNonSecured, sizeof(m_dbHeader.signature));
SetFilePointer(m_hDbFile,0,NULL,FILE_BEGIN);
WriteFile(m_hDbFile,m_dbHeader.signature,sizeof(m_dbHeader.signature),&bytesWritten,NULL);