Fix cases where we don't relay transactions.

This commit is contained in:
JoelKatz
2013-03-10 18:27:02 -07:00
parent 6f40e17bad
commit 8d660736a8

View File

@@ -374,27 +374,24 @@ Transaction::pointer NetworkOPs::processTransaction(Transaction::pointer trans,
if (r == tefFAILURE) if (r == tefFAILURE)
throw Fault(IO_ERROR); throw Fault(IO_ERROR);
if (isTerRetry(r))
{ // transaction should be held
cLog(lsDEBUG) << "Transaction should be held: " << r;
trans->setStatus(HELD);
theApp->getMasterTransaction().canonicalize(trans, true);
mLedgerMaster->addHeldTransaction(trans);
return trans;
}
if (r == tefPAST_SEQ)
{ // duplicate or conflict
cLog(lsINFO) << "Transaction is obsolete";
trans->setStatus(OBSOLETE);
return trans;
}
if (r == tesSUCCESS) if (r == tesSUCCESS)
{ {
cLog(lsINFO) << "Transaction is now included in open ledger"; cLog(lsINFO) << "Transaction is now included in open ledger";
trans->setStatus(INCLUDED); trans->setStatus(INCLUDED);
theApp->getMasterTransaction().canonicalize(trans, true); theApp->getMasterTransaction().canonicalize(trans, true);
} }
else if (r == tefPAST_SEQ)
{ // duplicate or conflict
cLog(lsINFO) << "Transaction is obsolete";
trans->setStatus(OBSOLETE);
}
else if (isTerRetry(r))
{ // transaction should be held
cLog(lsDEBUG) << "Transaction should be held: " << r;
trans->setStatus(HELD);
theApp->getMasterTransaction().canonicalize(trans, true);
mLedgerMaster->addHeldTransaction(trans);
}
else else
{ {
cLog(lsDEBUG) << "Status other than success " << r; cLog(lsDEBUG) << "Status other than success " << r;