|
|
|
@ -163,14 +163,14 @@ CDBEnv::VerifyResult CDBEnv::Verify(const std::string& strFile, recoverFunc_type
@@ -163,14 +163,14 @@ CDBEnv::VerifyResult CDBEnv::Verify(const std::string& strFile, recoverFunc_type
|
|
|
|
|
bool CDB::Recover(const std::string& filename, void *callbackDataIn, bool (*recoverKVcallback)(void* callbackData, CDataStream ssKey, CDataStream ssValue), std::string& newFilename) |
|
|
|
|
{ |
|
|
|
|
// Recovery procedure:
|
|
|
|
|
// move wallet file to wallet.timestamp.bak
|
|
|
|
|
// move wallet file to walletfilename.timestamp.bak
|
|
|
|
|
// Call Salvage with fAggressive=true to
|
|
|
|
|
// get as much data as possible.
|
|
|
|
|
// Rewrite salvaged data to fresh wallet file
|
|
|
|
|
// Set -rescan so any missing transactions will be
|
|
|
|
|
// found.
|
|
|
|
|
int64_t now = GetTime(); |
|
|
|
|
newFilename = strprintf("wallet.%d.bak", now); |
|
|
|
|
newFilename = strprintf("%s.%d.bak", filename, now); |
|
|
|
|
|
|
|
|
|
int result = bitdb.dbenv->dbrename(NULL, filename.c_str(), NULL, |
|
|
|
|
newFilename.c_str(), DB_AUTO_COMMIT); |
|
|
|
|