From e70a532fd8034f8610070f213217ba8e32f33eff Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 7 Mar 2013 12:18:40 -0800 Subject: [PATCH] Temporary loop limit. --- src/cpp/ripple/RippleCalc.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/cpp/ripple/RippleCalc.cpp b/src/cpp/ripple/RippleCalc.cpp index ac6936598..b214c037c 100644 --- a/src/cpp/ripple/RippleCalc.cpp +++ b/src/cpp/ripple/RippleCalc.cpp @@ -1302,9 +1302,16 @@ TER RippleCalc::calcNodeDeliverFwd( saInAct.zero(saInReq); saInFees.zero(saInReq); + int loopCount = 0; while (tesSUCCESS == terResult && saInAct + saInFees != saInReq) // Did not deliver all funds. { + if (++loopCount > 40) + { + cLog(lsWARNING) << "max loops cndf"; + return mOpenLedger ? telFAILED_PROCESSING : tecFAILED_PROCESSING; + } + // Determine values for pass to adjust saInAct, saInFees, and saCurDeliverAct terResult = calcNodeAdvance(uNode, psCur, bMultiQuality, false); // If needed, advance to next funded offer.