From 586c6aee3192679958e40ca1984a9e06fa321588 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 15 May 2013 15:55:23 -0700 Subject: [PATCH] Bypass signature check if it has already been done. --- src/cpp/ripple/LedgerConsensus.cpp | 2 ++ src/cpp/ripple/LedgerMaster.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cpp/ripple/LedgerConsensus.cpp b/src/cpp/ripple/LedgerConsensus.cpp index a312d30ff5..556ea0de97 100644 --- a/src/cpp/ripple/LedgerConsensus.cpp +++ b/src/cpp/ripple/LedgerConsensus.cpp @@ -1043,6 +1043,8 @@ int LedgerConsensus::applyTransaction(TransactionEngine& engine, SerializedTrans TransactionEngineParams parms = openLedger ? tapOPEN_LEDGER : tapNONE; if (retryAssured) parms = static_cast(parms | tapRETRY); + if (theApp->isNewFlag(txn->getTransactionID(), SF_SIGGOOD)) + parms = static_cast(parms | tapNO_CHECK_SIGN); cLog(lsDEBUG) << "TXN " << txn->getTransactionID() << (openLedger ? " open" : " closed") diff --git a/src/cpp/ripple/LedgerMaster.cpp b/src/cpp/ripple/LedgerMaster.cpp index 23d2c7ab71..dd93c393ee 100644 --- a/src/cpp/ripple/LedgerMaster.cpp +++ b/src/cpp/ripple/LedgerMaster.cpp @@ -101,8 +101,13 @@ Ledger::pointer LedgerMaster::closeLedger(bool recover) { try { + TransactionEngineParams tepFlags = tapOPEN_LEDGER; + + if (theApp->isNew(it->first.getTXID(), SF_SIGGOOD)); + tepFlags = static_cast(tepFlags | tapNO_CHECK_SIGN); + bool didApply; - mEngine.applyTransaction(*it->second, tapOPEN_LEDGER, didApply); + mEngine.applyTransaction(*it->second, tepFlags, didApply); if (didApply) ++recovers; }