From df32873321ce988b84cf0f0e25dde6339fbb0806 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Mon, 22 Apr 2013 15:17:23 -0700 Subject: [PATCH] Cleanups. --- src/cpp/ripple/LoadManager.h | 1 + src/cpp/ripple/NetworkOPs.cpp | 4 +- src/cpp/ripple/Peer.cpp | 75 +++++++++++++++++------------------ 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/cpp/ripple/LoadManager.h b/src/cpp/ripple/LoadManager.h index 7acf6dc9a6..3926202416 100644 --- a/src/cpp/ripple/LoadManager.h +++ b/src/cpp/ripple/LoadManager.h @@ -182,6 +182,7 @@ public: void setRemoteFee(uint32); bool raiseLocalFee(); bool lowerLocalFee(); + bool isLoaded() { return (raiseCount != 0) || (mLocalTxnLoadFee != lftNormalFee); } }; diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp index 45ef051049..901dcea113 100644 --- a/src/cpp/ripple/NetworkOPs.cpp +++ b/src/cpp/ripple/NetworkOPs.cpp @@ -36,7 +36,7 @@ NetworkOPs::NetworkOPs(boost::asio::io_service& io_service, LedgerMaster* pLedge mMode(omDISCONNECTED), mNeedNetworkLedger(false), mProposing(false), mValidating(false), mNetTimer(io_service), mLedgerMaster(pLedgerMaster), mCloseTimeOffset(0), mLastCloseProposers(0), mLastCloseConvergeTime(1000 * LEDGER_IDLE_INTERVAL), mLastValidationTime(0), - mFetchPack("FetchPack", 2048, 3), mLastFetchPack(0), + mFetchPack("FetchPack", 2048, 30), mLastFetchPack(0), mLastLoadBase(256), mLastLoadFactor(256) { } @@ -2051,7 +2051,7 @@ void NetworkOPs::makeFetchPack(Job&, boost::weak_ptr wPeer, boost::shared_ newObj.set_ledgerseq(lSeq); } } - if (reply.objects().size() >= 768) + if (reply.objects().size() >= 512) break; haveLedger = wantLedger; wantLedger = getLedgerByHash(haveLedger->getParentHash()); diff --git a/src/cpp/ripple/Peer.cpp b/src/cpp/ripple/Peer.cpp index fd07ef826b..6e252348d3 100644 --- a/src/cpp/ripple/Peer.cpp +++ b/src/cpp/ripple/Peer.cpp @@ -1249,13 +1249,13 @@ void Peer::recvGetObjectByHash(const boost::shared_ptrgetOPs().haveLedger(pLSeq); if (!pLDo) { cLog(lsDEBUG) << "Got pack for " << pLSeq << " too late"; } - else cLog(lsDEBUG) << "Got pack for " << pLSeq; } } @@ -1271,6 +1271,7 @@ void Peer::recvGetObjectByHash(const boost::shared_ptr peer, ProofOfWork::pointer void Peer::doFetchPack(const boost::shared_ptr& packet) { - if (packet->query()) + if (theApp->getFeeTrack().isLoaded()) { - if (packet->ledgerhash().size() != 32) - { - cLog(lsWARNING) << "FetchPack hash size malformed"; - punishPeer(LT_InvalidRequest); - return; - } - uint256 hash; - memcpy(hash.begin(), packet->ledgerhash().data(), 32); - - Ledger::pointer haveLedger = theApp->getOPs().getLedgerByHash(hash); - if (!haveLedger) - { - cLog(lsINFO) << "Peer requests fetch pack for ledger we don't have: " << hash; - punishPeer(LT_RequestNoReply); - return; - } - if (!haveLedger->isClosed()) - { - cLog(lsWARNING) << "Peer requests fetch pack from open ledger: " << hash; - punishPeer(LT_InvalidRequest); - return; - } - - Ledger::pointer wantLedger = theApp->getOPs().getLedgerByHash(haveLedger->getParentHash()); - if (!wantLedger) - { - cLog(lsINFO) << "Peer requests fetch pack for ledger whose predecessor we don't have: " << hash; - punishPeer(LT_RequestNoReply); - return; - } - theApp->getJobQueue().addJob(jtPACK, "MakeFetchPack", - BIND_TYPE(&NetworkOPs::makeFetchPack, &theApp->getOPs(), P_1, - boost::weak_ptr(shared_from_this()), packet, wantLedger, haveLedger)); + cLog(lsINFO) << "Too busy to make fetch pack"; + return; } - else - { // received fetch pack - // WRITEME + if (packet->ledgerhash().size() != 32) + { + cLog(lsWARNING) << "FetchPack hash size malformed"; + punishPeer(LT_InvalidRequest); + return; } + uint256 hash; + memcpy(hash.begin(), packet->ledgerhash().data(), 32); + + Ledger::pointer haveLedger = theApp->getOPs().getLedgerByHash(hash); + if (!haveLedger) + { + cLog(lsINFO) << "Peer requests fetch pack for ledger we don't have: " << hash; + punishPeer(LT_RequestNoReply); + return; + } + if (!haveLedger->isClosed()) + { + cLog(lsWARNING) << "Peer requests fetch pack from open ledger: " << hash; + punishPeer(LT_InvalidRequest); + return; + } + + Ledger::pointer wantLedger = theApp->getOPs().getLedgerByHash(haveLedger->getParentHash()); + if (!wantLedger) + { + cLog(lsINFO) << "Peer requests fetch pack for ledger whose predecessor we don't have: " << hash; + punishPeer(LT_RequestNoReply); + return; + } + theApp->getJobQueue().addJob(jtPACK, "MakeFetchPack", + BIND_TYPE(&NetworkOPs::makeFetchPack, &theApp->getOPs(), P_1, + boost::weak_ptr(shared_from_this()), packet, wantLedger, haveLedger)); } bool Peer::hasProto(int version)