diff --git a/LICENSE b/LICENSE index 07074b554..0388cedae 100644 Binary files a/LICENSE and b/LICENSE differ diff --git a/src/cpp/ripple/AcceptedLedger.cpp b/src/cpp/ripple/AcceptedLedger.cpp index cb1bcf07a..770d0e874 100644 --- a/src/cpp/ripple/AcceptedLedger.cpp +++ b/src/cpp/ripple/AcceptedLedger.cpp @@ -2,7 +2,7 @@ #include -TaggedCache AcceptedLedger::ALCache("AcceptedLedger", 8, 120); +TaggedCache AcceptedLedger::ALCache("AcceptedLedger", 4, 60); ALTransaction::ALTransaction(uint32 seq, SerializerIterator& sit) { diff --git a/src/cpp/ripple/LedgerAcquire.cpp b/src/cpp/ripple/LedgerAcquire.cpp index 5131c03cf..291ff8f8f 100644 --- a/src/cpp/ripple/LedgerAcquire.cpp +++ b/src/cpp/ripple/LedgerAcquire.cpp @@ -107,17 +107,14 @@ LedgerAcquire::LedgerAcquire(const uint256& hash, uint32 seq) : PeerSet(hash, LE tryLocal(); } -bool LedgerAcquire::checkLocal() +void LedgerAcquire::checkLocal() { boost::recursive_mutex::scoped_lock sl(mLock); if (isDone()) - return false; + return; - if (!tryLocal()) - return false; - - done(); - return true; + if (tryLocal()) + done(); } bool LedgerAcquire::tryLocal() @@ -1067,20 +1064,13 @@ void LedgerAcquireMaster::gotFetchPack(Job&) acquires.reserve(mLedgers.size()); typedef std::pair u256_acq_pair; BOOST_FOREACH(const u256_acq_pair& it, mLedgers) - { acquires.push_back(it.second); - } } - int completed = 0; BOOST_FOREACH(const LedgerAcquire::pointer& acquire, acquires) { - if (acquire->checkLocal()) - ++completed; + acquire->checkLocal(); } - - if (completed > 0) - theApp->getLedgerMaster().resumeAcquiring(); } // vim:ts=4 diff --git a/src/cpp/ripple/LedgerAcquire.h b/src/cpp/ripple/LedgerAcquire.h index 7d69f493b..9e38b0062 100644 --- a/src/cpp/ripple/LedgerAcquire.h +++ b/src/cpp/ripple/LedgerAcquire.h @@ -130,7 +130,7 @@ public: void addPeers(); void awaitData(); void noAwaitData(); - bool checkLocal(); + void checkLocal(); typedef std::pair neededHash_t; std::vector getNeededHashes(); diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp index e0f5c010a..3d6ec1519 100644 --- a/src/cpp/ripple/NetworkOPs.cpp +++ b/src/cpp/ripple/NetworkOPs.cpp @@ -2131,7 +2131,7 @@ void NetworkOPs::gotFetchPack(bool progress, uint32 seq) mLastFetchPack = 0; mFetchSeq = seq; // earliest pack we have data on theApp->getJobQueue().addJob(jtLEDGER_DATA, "gotFetchPack", - BIND_TYPE(&LedgerAcquireMaster::gotFetchPack, &theApp->getMasterLedgerAcquire(), P_1)); + boost::bind(&LedgerAcquireMaster::gotFetchPack, &theApp->getMasterLedgerAcquire(), _1)); } void NetworkOPs::missingNodeInLedger(uint32 seq) diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 0d2d49279..a350ae65c 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -3486,7 +3486,7 @@ Json::Value RPCHandler::doCommand(const Json::Value& jvRequest, int iRole, int & { "path_find", &RPCHandler::doPathFind, false, optCurrent }, { "ping", &RPCHandler::doPing, false, optNone }, // { "profile", &RPCHandler::doProfile, false, optCurrent }, - { "proof_create", &RPCHandler::doProofCreate, true, optNone }, + { "proof_create", &RPCHandler::doProofCreate, false, optNone }, { "proof_solve", &RPCHandler::doProofSolve, true, optNone }, { "proof_verify", &RPCHandler::doProofVerify, true, optNone }, { "random", &RPCHandler::doRandom, false, optNone }, diff --git a/src/cpp/ripple/SHAMap.cpp b/src/cpp/ripple/SHAMap.cpp index 834bdef6a..7ac25fe96 100644 --- a/src/cpp/ripple/SHAMap.cpp +++ b/src/cpp/ripple/SHAMap.cpp @@ -260,6 +260,7 @@ SHAMapTreeNode* SHAMap::getNodePointer(const SHAMapNode& id, const uint256& hash } } + void SHAMap::returnNode(SHAMapTreeNode::pointer& node, bool modify) { // make sure the node is suitable for the intended operation (copy on write) assert(node->isValid()); diff --git a/src/cpp/ripple/SHAMapSync.cpp b/src/cpp/ripple/SHAMapSync.cpp index f7e698521..8d851b25d 100644 --- a/src/cpp/ripple/SHAMapSync.cpp +++ b/src/cpp/ripple/SHAMapSync.cpp @@ -126,7 +126,7 @@ std::vector SHAMap::getNeededHashes(int max, SHAMapSyncFilter* filter) try { d = getNodePointer(childID, childHash, filter); - if (d->isInner()) + if (d->isInner() && !d->isFullBelow()) { have_all = false; stack.push(d);