aboutsummaryrefslogtreecommitdiff
path: root/src/bitcoinrpc.cpp
diff options
context:
space:
mode:
authorGavin Andresen <[email protected]>2013-05-24 12:41:04 -0700
committerGavin Andresen <[email protected]>2013-05-24 12:41:04 -0700
commit1472a2991b7f75387aaad87a81e65f695408d58d (patch)
tree18fd48ebecaf4657faaf02864e6cec36bad3cb76 /src/bitcoinrpc.cpp
parentdoc/README was replaced by README.md (diff)
parentClean up mining CReserveKey to prevent crash at shutdown (diff)
downloaddiscoin-1472a2991b7f75387aaad87a81e65f695408d58d.tar.xz
discoin-1472a2991b7f75387aaad87a81e65f695408d58d.zip
Merge pull request #2688 from gavinandresen/issue2687
Clean up mining CReserveKey to prevent crash at shutdown
Diffstat (limited to 'src/bitcoinrpc.cpp')
-rw-r--r--src/bitcoinrpc.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp
index a9b73fd5a..2c4744a57 100644
--- a/src/bitcoinrpc.cpp
+++ b/src/bitcoinrpc.cpp
@@ -30,6 +30,10 @@ using namespace boost;
using namespace boost::asio;
using namespace json_spirit;
+// Key used by getwork/getblocktemplate miners.
+// Allocated in StartRPCThreads, free'd in StopRPCThreads
+CReserveKey* pMiningKey = NULL;
+
static std::string strRPCUserColonPass;
// These are created by StartRPCThreads, destroyed in StopRPCThreads
@@ -722,6 +726,9 @@ static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol,
void StartRPCThreads()
{
+ // getwork/getblocktemplate mining rewards paid here:
+ pMiningKey = new CReserveKey(pwalletMain);
+
strRPCUserColonPass = mapArgs["-rpcuser"] + ":" + mapArgs["-rpcpassword"];
if ((mapArgs["-rpcpassword"] == "") ||
(mapArgs["-rpcuser"] == mapArgs["-rpcpassword"]))
@@ -841,6 +848,8 @@ void StartRPCThreads()
void StopRPCThreads()
{
+ delete pMiningKey; pMiningKey = NULL;
+
if (rpc_io_service == NULL) return;
rpc_io_service->stop();