TransactionEngine: do not allow bad transfer rate to be set.

This commit is contained in:
Arthur Britto
2012-09-28 12:30:29 -07:00
parent e2fb75046f
commit 9f2b38a441
3 changed files with 11 additions and 2 deletions

View File

@@ -166,18 +166,24 @@ TER TransactionEngine::doAccountSet(const SerializedTransaction& txn)
{
uint32 uRate = txn.getITFieldU32(sfTransferRate);
if (!uRate)
if (!uRate || uRate == QUALITY_ONE)
{
Log(lsINFO) << "doAccountSet: unset transfer rate";
mTxnAccount->makeIFieldAbsent(sfTransferRate);
}
else
else if (uRate > QUALITY_ONE)
{
Log(lsINFO) << "doAccountSet: set transfer rate";
mTxnAccount->setIFieldU32(sfTransferRate, uRate);
}
else
{
Log(lsINFO) << "doAccountSet: bad transfer rate";
return temBAD_TRANSFER_RATE;
}
}
//

View File

@@ -31,6 +31,7 @@ bool transResultInfo(TER terCode, std::string& strToken, std::string& strHuman)
{ temBAD_PATH, "temBAD_PATH", "Malformed." },
{ temBAD_PATH_LOOP, "temBAD_PATH_LOOP", "Malformed." },
{ temBAD_PUBLISH, "temBAD_PUBLISH", "Malformed: bad publish." },
{ temBAD_TRANSFER_RATE, "temBAD_TRANSFER_RATE", "Malformed: transfer rate must be >= 1.0" },
{ temBAD_SET_ID, "temBAD_SET_ID", "Malformed." },
{ temCREATEXNS, "temCREATEXNS", "Can not specify non XNS for Create." },
{ temDST_IS_SRC, "temDST_IS_SRC", "Destination may not be source." },
@@ -89,3 +90,4 @@ std::string transHuman(TER terCode)
return transResultInfo(terCode, strToken, strHuman) ? strHuman : "-";
}
// vim:ts=4

View File

@@ -33,6 +33,7 @@ enum TER // aka TransactionEngineResult
temBAD_PATH,
temBAD_PATH_LOOP,
temBAD_PUBLISH,
temBAD_TRANSFER_RATE,
temBAD_SET_ID,
temCREATEXNS,
temDST_IS_SRC,