Browse Source

Merge pull request #2716 from laanwj/2013_05_30_getwork

Move pMiningKey init out of StartRPCThreads
miguelfreitas
Jeff Garzik 12 years ago
parent
commit
6bc6d57303
  1. 9
      src/bitcoinrpc.cpp
  2. 4
      src/bitcoinrpc.h
  3. 3
      src/init.cpp
  4. 15
      src/rpcmining.cpp

9
src/bitcoinrpc.cpp

@ -30,10 +30,6 @@ using namespace boost; @@ -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
@ -727,9 +723,6 @@ static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, @@ -727,9 +723,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"]))
@ -849,8 +842,6 @@ void StartRPCThreads() @@ -849,8 +842,6 @@ void StartRPCThreads()
void StopRPCThreads()
{
delete pMiningKey; pMiningKey = NULL;
if (rpc_io_service == NULL) return;
deadlineTimers.clear();

4
src/bitcoinrpc.h

@ -129,7 +129,9 @@ public: @@ -129,7 +129,9 @@ public:
};
extern const CRPCTable tableRPC;
extern CReserveKey* pMiningKey;
extern void InitRPCMining();
extern void ShutdownRPCMining();
extern int64 nWalletUnlockTime;
extern int64 AmountFromValue(const json_spirit::Value& value);

3
src/init.cpp

@ -97,6 +97,7 @@ void Shutdown() @@ -97,6 +97,7 @@ void Shutdown()
RenameThread("bitcoin-shutoff");
nTransactionsUpdated++;
StopRPCThreads();
ShutdownRPCMining();
bitdb.Flush(false);
StopNode();
{
@ -1088,6 +1089,8 @@ bool AppInit2(boost::thread_group& threadGroup) @@ -1088,6 +1089,8 @@ bool AppInit2(boost::thread_group& threadGroup)
StartNode(threadGroup);
// InitRPCMining is needed here so getwork/getblocktemplate in the GUI debug console works properly.
InitRPCMining();
if (fServer)
StartRPCThreads();

15
src/rpcmining.cpp

@ -11,6 +11,21 @@ @@ -11,6 +11,21 @@
using namespace json_spirit;
using namespace std;
// Key used by getwork/getblocktemplate miners.
// Allocated in InitRPCMining, free'd in ShutdownRPCMining
static CReserveKey* pMiningKey = NULL;
void InitRPCMining()
{
// getwork/getblocktemplate mining rewards paid here:
pMiningKey = new CReserveKey(pwalletMain);
}
void ShutdownRPCMining()
{
delete pMiningKey; pMiningKey = NULL;
}
Value getgenerate(const Array& params, bool fHelp)
{
if (fHelp || params.size() != 0)

Loading…
Cancel
Save