From e219aa67bc01bb3f49f919625e305f1307ac0b81 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 6 Mar 2013 18:03:54 -0800 Subject: [PATCH] Quick workaround for piling up client requests. --- src/cpp/ripple/RPCHandler.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index ed19012d8..b9dee136d 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -1030,6 +1030,11 @@ Json::Value RPCHandler::doAccountOffers(Json::Value jvRequest) // } Json::Value RPCHandler::doBookOffers(Json::Value jvRequest) { + if (theApp->getJobQueue().getJobCountGE(jtCLIENT) > 200) + { + return rpcError(rpcTOO_BUSY); + } + Ledger::pointer lpLedger; Json::Value jvResult = lookupLedger(jvRequest, lpLedger); @@ -1153,7 +1158,11 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest) RippleAddress raDst; STAmount saDstAmount; - if (!jvRequest.isMember("source_account")) + if (theApp->getJobQueue().getJobCountGE(jtCLIENT) > 200) + { + jvResult = rpcError(rpcTOO_BUSY); + } + else if (!jvRequest.isMember("source_account")) { jvResult = rpcError(rpcSRC_ACT_MISSING); } @@ -2873,6 +2882,9 @@ Json::Value RPCHandler::doInternal(Json::Value jvRequest) Json::Value RPCHandler::doCommand(const Json::Value& jvRequest, int iRole) { + if ((iRole != ADMIN) && (theApp->getJobQueue().getJobCountGE(jtCLIENT) > 500)) + return rpcError(rpcTOO_BUSY); + if (!jvRequest.isMember("command")) return rpcError(rpcCOMMAND_MISSING);