Move pMiningKey init out of StartRPCThreads

This commit decouples the pMiningKey initialization and shutdown from the RPC
threads.

`getwork` and `getblocktemplate` rely on pMiningKey, and can also be ran
from the debug window in the UI even when the RPC server is not running.

Solves issue #2706.
This commit is contained in:
Wladimir J. van der Laan
2013-05-30 15:51:41 +02:00
parent ba35ecc003
commit d98bf10f23
4 changed files with 21 additions and 10 deletions

View File

@@ -30,10 +30,6 @@ 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
@@ -726,9 +722,6 @@ 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"]))
@@ -848,8 +841,6 @@ void StartRPCThreads()
void StopRPCThreads()
{
delete pMiningKey; pMiningKey = NULL;
if (rpc_io_service == NULL) return;
rpc_io_service->stop();