|
|
|
@ -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);
|
|
|
|
|