From de3b89d5c167a9563e63e6a5d9db7589697933f7 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sun, 30 Sep 2012 23:38:29 -0700 Subject: [PATCH] Fix the bug Jed reported. Need isTeRetry. --- src/LedgerConsensus.cpp | 8 +++++--- src/TransactionErr.h | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/LedgerConsensus.cpp b/src/LedgerConsensus.cpp index 2b2af08a78..f42acb9f0a 100644 --- a/src/LedgerConsensus.cpp +++ b/src/LedgerConsensus.cpp @@ -977,21 +977,23 @@ void LedgerConsensus::applyTransaction(TransactionEngine& engine, const Serializ { #endif TER result = engine.applyTransaction(*txn, parms); - if (result > 0) + if (isTerRetry(result { Log(lsINFO) << " retry"; assert(!ledger->hasTransaction(txn->getTransactionID())); failedTransactions.push_back(txn); } - else if (result == 0) + else if (isTepSuccess(result)) // FIXME: Need to do partial success { Log(lsTRACE) << " success"; assert(ledger->hasTransaction(txn->getTransactionID())); } - else + else if (isTemMalformed(result) || isTefFailure(result)) { Log(lsINFO) << " hard fail"; } + else + assert(false); #ifndef TRUST_NETWORK } catch (...) diff --git a/src/TransactionErr.h b/src/TransactionErr.h index 7ce5cd6109..59f42b46be 100644 --- a/src/TransactionErr.h +++ b/src/TransactionErr.h @@ -111,6 +111,8 @@ enum TER // aka TransactionEngineResult #define isTemMalformed(x) ((x) >= temMALFORMED && (x) < tefFAILURE) #define isTefFailure(x) ((x) >= tefFAILURE && (x) < terRETRY) #define isTepPartial(x) ((x) >= tepPATH_PARTIAL) +#define isTepSucess(x) ((x) >= tesSUCCESS) +#define isTerRetry(x) ((x) >= terRETRY && (x) < tesSUCCESS) bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman); std::string transToken(TER terCode);