|
|
@ -101,8 +101,10 @@ bool CDBEnv::Open(const fs::path& pathIn) |
|
|
|
DB_RECOVER | |
|
|
|
DB_RECOVER | |
|
|
|
nEnvFlags, |
|
|
|
nEnvFlags, |
|
|
|
S_IRUSR | S_IWUSR); |
|
|
|
S_IRUSR | S_IWUSR); |
|
|
|
if (ret != 0) |
|
|
|
if (ret != 0) { |
|
|
|
|
|
|
|
dbenv->close(0); |
|
|
|
return error("CDBEnv::Open: Error %d opening database environment: %s\n", ret, DbEnv::strerror(ret)); |
|
|
|
return error("CDBEnv::Open: Error %d opening database environment: %s\n", ret, DbEnv::strerror(ret)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fDbEnvInit = true; |
|
|
|
fDbEnvInit = true; |
|
|
|
fMockDb = false; |
|
|
|
fMockDb = false; |
|
|
@ -196,9 +198,9 @@ bool CDB::Recover(const std::string& filename, void *callbackDataIn, bool (*reco |
|
|
|
DB_BTREE, // Database type
|
|
|
|
DB_BTREE, // Database type
|
|
|
|
DB_CREATE, // Flags
|
|
|
|
DB_CREATE, // Flags
|
|
|
|
0); |
|
|
|
0); |
|
|
|
if (ret > 0) |
|
|
|
if (ret > 0) { |
|
|
|
{ |
|
|
|
|
|
|
|
LogPrintf("Cannot create database file %s\n", filename); |
|
|
|
LogPrintf("Cannot create database file %s\n", filename); |
|
|
|
|
|
|
|
pdbCopy->close(0); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -536,8 +538,10 @@ bool CDB::Rewrite(CWalletDBWrapper& dbw, const char* pszSkip) |
|
|
|
env->CloseDb(strFile); |
|
|
|
env->CloseDb(strFile); |
|
|
|
if (pdbCopy->close(0)) |
|
|
|
if (pdbCopy->close(0)) |
|
|
|
fSuccess = false; |
|
|
|
fSuccess = false; |
|
|
|
delete pdbCopy; |
|
|
|
} else { |
|
|
|
|
|
|
|
pdbCopy->close(0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
delete pdbCopy; |
|
|
|
} |
|
|
|
} |
|
|
|
if (fSuccess) { |
|
|
|
if (fSuccess) { |
|
|
|
Db dbA(env->dbenv, 0); |
|
|
|
Db dbA(env->dbenv, 0); |
|
|
|