mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-20 23:29:12 +01:00
Obsolete keypool and make sure database removes log files on shutdown.
This commit is contained in:
@@ -187,10 +187,12 @@ bool CWallet::EncryptWallet(const string& strWalletPassphrase)
|
||||
}
|
||||
|
||||
Lock();
|
||||
}
|
||||
|
||||
if (Resilver(strWalletFile))
|
||||
CWalletDB(strWalletFile, "r+").WriteSetting("fIsResilvered", true);
|
||||
// Need to completely rewrite the wallet file; if we don't, bdb might keep
|
||||
// bits of the unencrypted private key in slack space in the database file.
|
||||
setKeyPool.clear();
|
||||
CDB::Rewrite(strWalletFile, "\x04pool");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1145,11 +1147,16 @@ int CWallet::LoadWallet(bool& fFirstRunRet)
|
||||
return false;
|
||||
fFirstRunRet = false;
|
||||
int nLoadWalletRet = CWalletDB(strWalletFile,"cr+").LoadWallet(this);
|
||||
if (nLoadWalletRet == DB_NEED_RESILVER)
|
||||
if (nLoadWalletRet == DB_NEED_REWRITE)
|
||||
{
|
||||
if (Resilver(strWalletFile))
|
||||
CWalletDB(strWalletFile, "r+").WriteSetting("fIsResilvered", true);
|
||||
nLoadWalletRet = DB_LOAD_OK;
|
||||
if (CDB::Rewrite(strWalletFile, "\x04pool"))
|
||||
{
|
||||
setKeyPool.clear();
|
||||
// Note: can't top-up keypool here, because wallet is locked.
|
||||
// User will be prompted to unlock wallet the next operation
|
||||
// the requires a new key.
|
||||
}
|
||||
nLoadWalletRet = DB_NEED_REWRITE;
|
||||
}
|
||||
|
||||
if (nLoadWalletRet != DB_LOAD_OK)
|
||||
|
||||
Reference in New Issue
Block a user