mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-23 15:20:54 +00:00
Merge branch 'master' of github.com:jedmccaleb/NewCoin
Conflicts: src/ConnectionPool.cpp
This commit is contained in:
@@ -1,9 +1,5 @@
|
||||
|
||||
#include "ConnectionPool.h"
|
||||
#include "Config.h"
|
||||
#include "Peer.h"
|
||||
#include "Application.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
@@ -11,6 +7,13 @@
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
#include "Config.h"
|
||||
#include "Peer.h"
|
||||
#include "Application.h"
|
||||
#include "utils.h"
|
||||
#include "Log.h"
|
||||
|
||||
|
||||
// How often to enforce policies.
|
||||
#define POLICY_INTERVAL_SECONDS 5
|
||||
|
||||
@@ -163,7 +166,7 @@ void ConnectionPool::policyEnforce()
|
||||
{
|
||||
boost::posix_time::ptime tpNow = boost::posix_time::second_clock::universal_time();
|
||||
|
||||
//std::cerr << "policyEnforce: begin: " << tpNow << std::endl;
|
||||
Log(lsTRACE) << "policyEnforce: begin: " << tpNow;
|
||||
|
||||
// Cancel any in progrss timer.
|
||||
(void) mPolicyTimer.cancel();
|
||||
@@ -176,7 +179,7 @@ void ConnectionPool::policyEnforce()
|
||||
|
||||
tpNext = boost::posix_time::second_clock::universal_time()+boost::posix_time::seconds(POLICY_INTERVAL_SECONDS);
|
||||
|
||||
//std::cerr << "policyEnforce: schedule : " << tpNext << std::endl;
|
||||
Log(lsTRACE) << "policyEnforce: schedule : " << tpNext;
|
||||
|
||||
mPolicyTimer.expires_at(tpNext);
|
||||
mPolicyTimer.async_wait(boost::bind(&ConnectionPool::policyHandler, this, _1));
|
||||
@@ -208,7 +211,7 @@ void ConnectionPool::relayMessage(Peer* fromPeer, PackedMessage::pointer msg)
|
||||
Peer::pointer peer = pair.second;
|
||||
if (!peer)
|
||||
std::cerr << "CP::RM null peer in list" << std::endl;
|
||||
else if (!fromPeer || !(peer.get() == fromPeer))
|
||||
else if ((!fromPeer || !(peer.get() == fromPeer)) && peer->isConnected())
|
||||
peer->sendPacket(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,6 +99,7 @@ public:
|
||||
void setImmutable() { updateHash(); mImmutable = true; }
|
||||
bool isClosed() { return mClosed; }
|
||||
bool isAccepted() { return mAccepted; }
|
||||
bool isImmutable() { return mImmutable; }
|
||||
|
||||
// This ledger has closed, will never be accepted, and is accepting
|
||||
// new transactions to be re-repocessed when do accept a new last-closed ledger
|
||||
|
||||
@@ -255,10 +255,7 @@ void LedgerConsensus::mapComplete(const uint256& hash, SHAMap::pointer map, bool
|
||||
}
|
||||
|
||||
if (mComplete.find(hash) != mComplete.end())
|
||||
{
|
||||
Log(lsERROR) << "Which we already had";
|
||||
return; // we already have this map
|
||||
}
|
||||
|
||||
if (mOurPosition && (map->getHash() != mOurPosition->getCurrentHash()))
|
||||
{ // this could create disputed transactions
|
||||
@@ -506,7 +503,7 @@ void LedgerConsensus::startAcquiring(TransactionAcquire::pointer acquire)
|
||||
|
||||
void LedgerConsensus::propose(const std::vector<uint256>& added, const std::vector<uint256>& removed)
|
||||
{
|
||||
Log(lsDEBUG) << "We propose: " << mOurPosition->getCurrentHash().GetHex();
|
||||
Log(lsTRACE) << "We propose: " << mOurPosition->getCurrentHash().GetHex();
|
||||
newcoin::TMProposeSet prop;
|
||||
prop.set_currenttxhash(mOurPosition->getCurrentHash().begin(), 256 / 8);
|
||||
prop.set_proposeseq(mOurPosition->getProposeSeq());
|
||||
@@ -643,7 +640,7 @@ void LedgerConsensus::applyTransaction(TransactionEngine& engine, SerializedTran
|
||||
}
|
||||
else if (result == 0)
|
||||
{
|
||||
Log(lsDEBUG) << " success";
|
||||
Log(lsTRACE) << " success";
|
||||
assert(ledger->hasTransaction(txn->getTransactionID()));
|
||||
}
|
||||
else
|
||||
@@ -729,7 +726,7 @@ void LedgerConsensus::accept(SHAMap::pointer set)
|
||||
Log(lsTRACE) << "newLCL before transactions";
|
||||
Json::Value p;
|
||||
newLCL->addJson(p, LEDGER_JSON_DUMP_TXNS | LEDGER_JSON_DUMP_STATE);
|
||||
ssw.write(std::cerr, p);
|
||||
ssw.write(Log(lsTRACE).ref(), p);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -747,7 +744,7 @@ void LedgerConsensus::accept(SHAMap::pointer set)
|
||||
Log(lsTRACE) << "newLCL after transactions";
|
||||
Json::Value p;
|
||||
newLCL->addJson(p, LEDGER_JSON_DUMP_TXNS | LEDGER_JSON_DUMP_STATE);
|
||||
ssw.write(std::cerr, p);
|
||||
ssw.write(Log(lsTRACE).ref(), p);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -759,14 +756,14 @@ void LedgerConsensus::accept(SHAMap::pointer set)
|
||||
Log(lsTRACE) << "newOL before transactions";
|
||||
Json::Value p;
|
||||
newOL->addJson(p, LEDGER_JSON_DUMP_TXNS | LEDGER_JSON_DUMP_STATE);
|
||||
ssw.write(std::cerr, p);
|
||||
ssw.write(Log(lsTRACE).ref(), p);
|
||||
}
|
||||
if (1)
|
||||
{
|
||||
Log(lsTRACE) << "current ledger";
|
||||
Json::Value p;
|
||||
theApp->getMasterLedger().getCurrentLedger()->addJson(p, LEDGER_JSON_DUMP_TXNS | LEDGER_JSON_DUMP_STATE);
|
||||
ssw.write(std::cerr, p);
|
||||
ssw.write(Log(lsTRACE).ref(), p);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -804,7 +801,7 @@ void LedgerConsensus::accept(SHAMap::pointer set)
|
||||
Log(lsTRACE) << "newOL after current ledger transactions";
|
||||
Json::Value p;
|
||||
newOL->addJson(p, LEDGER_JSON_DUMP_TXNS | LEDGER_JSON_DUMP_STATE);
|
||||
ssw.write(std::cerr, p);
|
||||
ssw.write(Log(lsTRACE).ref(), p);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ void LedgerHistory::addAcceptedLedger(Ledger::pointer ledger)
|
||||
uint256 h(ledger->getHash());
|
||||
boost::recursive_mutex::scoped_lock sl(mLedgersByHash.peekMutex());
|
||||
mLedgersByHash.canonicalize(h, ledger);
|
||||
assert(ledger && ledger->isAccepted() && ledger->isImmutable());
|
||||
mLedgersByIndex.insert(std::make_pair(ledger->getLedgerSeq(), ledger));
|
||||
boost::thread thread(boost::bind(&Ledger::saveAcceptedLedger, ledger));
|
||||
thread.detach();
|
||||
@@ -71,6 +72,7 @@ Ledger::pointer LedgerHistory::getLedgerByHash(const uint256& hash)
|
||||
|
||||
Ledger::pointer LedgerHistory::canonicalizeLedger(Ledger::pointer ledger, bool save)
|
||||
{
|
||||
assert(ledger->isImmutable());
|
||||
uint256 h(ledger->getHash());
|
||||
|
||||
if (!save)
|
||||
@@ -83,7 +85,7 @@ Ledger::pointer LedgerHistory::canonicalizeLedger(Ledger::pointer ledger, bool s
|
||||
// save input ledger in map if not in map, otherwise return corresponding map ledger
|
||||
boost::recursive_mutex::scoped_lock sl(mLedgersByHash.peekMutex());
|
||||
mLedgersByHash.canonicalize(h, ledger);
|
||||
if (ledger->isAccepted()) mLedgersByIndex[ledger->getLedgerSeq()]=ledger;
|
||||
if (ledger->isAccepted()) mLedgersByIndex[ledger->getLedgerSeq()] = ledger;
|
||||
return ledger;
|
||||
}
|
||||
// vim:ts=4
|
||||
|
||||
@@ -40,13 +40,14 @@ void LedgerMaster::pushLedger(Ledger::pointer newLCL, Ledger::pointer newOL)
|
||||
assert(newLCL->isClosed() && newLCL->isAccepted());
|
||||
assert(!newOL->isClosed() && !newOL->isAccepted());
|
||||
|
||||
ScopedLock sl(mLock);
|
||||
if (mFinalizedLedger && mFinalizedLedger->isAccepted())
|
||||
if (newLCL->isAccepted())
|
||||
{
|
||||
mLedgerHistory.addAcceptedLedger(mFinalizedLedger);
|
||||
Log(lsINFO) << "StashAccepted: " << mFinalizedLedger->getHash().GetHex();
|
||||
}
|
||||
|
||||
mFinalizedLedger = newLCL;
|
||||
ScopedLock sl(mLock);
|
||||
mCurrentLedger = newOL;
|
||||
mEngine.setLedger(newOL);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
boost::recursive_mutex Log::sLock;
|
||||
|
||||
LogSeverity Log::sMinSeverity = lsWARNING;
|
||||
LogSeverity Log::sMinSeverity = lsINFO;
|
||||
|
||||
std::ofstream* Log::outStream = NULL;
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ void Peer::handle_write(const boost::system::error_code& error, size_t bytes_tra
|
||||
void Peer::detach(const char *rsn)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
std::cerr << "DETACHING PEER: " << rsn << std::endl;
|
||||
Log(lsTRACE) << "DETACHING PEER: " << rsn;
|
||||
#endif
|
||||
boost::system::error_code ecCancel;
|
||||
|
||||
@@ -508,6 +508,7 @@ void Peer::processReadBuffer()
|
||||
|
||||
default:
|
||||
std::cerr << "Unknown Msg: " << type << std::endl;
|
||||
std::cerr << strHex(&mReadbuf[0], mReadbuf.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,6 +124,7 @@ public:
|
||||
void punishPeer(PeerPunish pp);
|
||||
|
||||
Json::Value getJson();
|
||||
bool isConnected() const { return mConnected; }
|
||||
|
||||
//static PackedMessage::pointer createFullLedger(Ledger::pointer ledger);
|
||||
static PackedMessage::pointer createLedgerProposal(Ledger::pointer ledger);
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "AccountState.h"
|
||||
#include "NicknameState.h"
|
||||
#include "utils.h"
|
||||
#include "Log.h"
|
||||
|
||||
RPCServer::RPCServer(boost::asio::io_service& io_service , NetworkOPs* nopNetwork)
|
||||
: mNetOps(nopNetwork), mSocket(io_service)
|
||||
@@ -162,16 +163,10 @@ std::string RPCServer::handleRequest(const std::string& requestStr)
|
||||
else if (!valParams.isArray())
|
||||
return(HTTPReply(400, ""));
|
||||
|
||||
#ifdef DEBUG
|
||||
Json::StyledStreamWriter w;
|
||||
w.write(std::cerr, valParams);
|
||||
#endif
|
||||
|
||||
w.write(Log(lsTRACE).ref(), valParams);
|
||||
Json::Value result(doCommand(strMethod, valParams));
|
||||
|
||||
#ifdef DEBUG
|
||||
w.write(std::cerr, result);
|
||||
#endif
|
||||
w.write(Log(lsTRACE).ref(), result);
|
||||
|
||||
std::string strReply = JSONRPCReply(result, Json::Value(), id);
|
||||
return( HTTPReply(200, strReply) );
|
||||
@@ -1966,7 +1961,7 @@ Json::Value RPCServer::doStop(Json::Value& params) {
|
||||
|
||||
Json::Value RPCServer::doCommand(const std::string& command, Json::Value& params)
|
||||
{
|
||||
std::cerr << "RPC:" << command << std::endl;
|
||||
Log(lsTRACE) << "RPC:" << command;
|
||||
|
||||
static struct {
|
||||
const char* pCommand;
|
||||
|
||||
@@ -40,12 +40,12 @@ TransactionEngineResult TransactionEngine::dirAdd(
|
||||
|
||||
|
||||
sleRoot->setIndex(uRootIndex);
|
||||
std::cerr << "dirAdd: Creating dir index: " << sleRoot->getIndex().ToString() << std::endl;
|
||||
Log(lsTRACE) << "dirAdd: Creating dir index: " << sleRoot->getIndex().ToString();
|
||||
|
||||
sleRoot->setIFieldU64(sfFirstNode, uNodeDir);
|
||||
sleRoot->setIFieldU64(sfLastNode, uNodeDir);
|
||||
|
||||
std::cerr << "dirAdd: first & last: " << strHex(uNodeDir) << std::endl;
|
||||
Log(lsTRACE) << "dirAdd: first & last: " << strHex(uNodeDir);
|
||||
|
||||
accounts.push_back(std::make_pair(taaCREATE, sleRoot));
|
||||
}
|
||||
@@ -64,9 +64,9 @@ TransactionEngineResult TransactionEngine::dirAdd(
|
||||
{
|
||||
// Last node is not full, append.
|
||||
|
||||
std::cerr << "dirAdd: appending: PREV: " << svIndexes.peekValue()[0].ToString() << std::endl;
|
||||
std::cerr << "dirAdd: appending: Node: " << strHex(uNodeDir) << std::endl;
|
||||
std::cerr << "dirAdd: appending: Entry: " << uLedgerIndex.ToString() << std::endl;
|
||||
Log(lsTRACE) << "dirAdd: appending: PREV: " << svIndexes.peekValue()[0].ToString();
|
||||
Log(lsTRACE) << "dirAdd: appending: Node: " << strHex(uNodeDir);
|
||||
Log(lsTRACE) << "dirAdd: appending: Entry: " << uLedgerIndex.ToString();
|
||||
|
||||
svIndexes.peekValue().push_back(uLedgerIndex);
|
||||
sleNode->setIFieldV256(sfIndexes, svIndexes);
|
||||
@@ -83,7 +83,7 @@ TransactionEngineResult TransactionEngine::dirAdd(
|
||||
// Record new last node.
|
||||
sleNode = SLE::pointer();
|
||||
|
||||
std::cerr << "dirAdd: last: " << strHex(uNodeDir) << std::endl;
|
||||
Log(lsTRACE) << "dirAdd: last: " << strHex(uNodeDir);
|
||||
|
||||
sleRoot->setIFieldU64(sfLastNode, uNodeDir);
|
||||
|
||||
@@ -97,7 +97,7 @@ TransactionEngineResult TransactionEngine::dirAdd(
|
||||
sleNode = boost::make_shared<SerializedLedgerEntry>(ltDIR_NODE);
|
||||
sleNode->setIndex(uNodeIndex);
|
||||
|
||||
std::cerr << "dirAdd: Creating dir node: " << sleNode->getIndex().ToString() << std::endl;
|
||||
Log(lsTRACE) << "dirAdd: Creating dir node: " << sleNode->getIndex().ToString();
|
||||
|
||||
STVector256 svIndexes;
|
||||
|
||||
@@ -123,7 +123,7 @@ TransactionEngineResult TransactionEngine::dirDelete(
|
||||
|
||||
if (!sleNode)
|
||||
{
|
||||
std::cerr << "dirDelete: no such node" << std::endl;
|
||||
Log(lsWARNING) << "dirDelete: no such node";
|
||||
return terNODE_NOT_FOUND;
|
||||
}
|
||||
else
|
||||
@@ -135,7 +135,7 @@ TransactionEngineResult TransactionEngine::dirDelete(
|
||||
it = std::find(vuiIndexes.begin(), vuiIndexes.end(), uLedgerIndex);
|
||||
if (vuiIndexes.end() == it)
|
||||
{
|
||||
std::cerr << "dirDelete: node not mentioned" << std::endl;
|
||||
Log(lsWARNING) << "dirDelete: node not mentioned";
|
||||
return terNODE_NOT_MENTIONED;
|
||||
}
|
||||
else
|
||||
@@ -146,7 +146,7 @@ TransactionEngineResult TransactionEngine::dirDelete(
|
||||
|
||||
if (!sleRoot)
|
||||
{
|
||||
std::cerr << "dirDelete: root node is missing" << std::endl;
|
||||
Log(lsWARNING) << "dirDelete: root node is missing";
|
||||
return terNODE_NO_ROOT;
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ TransactionEngineResult TransactionEngine::setAuthorized(const SerializedTransac
|
||||
|
||||
if (!naAccountPublic.accountPublicVerify(Serializer::getSHA512Half(vucCipher), vucSignature))
|
||||
{
|
||||
std::cerr << "createGenerator: bad signature unauthorized generator claim" << std::endl;
|
||||
Log(lsWARNING) << "createGenerator: bad signature unauthorized generator claim";
|
||||
|
||||
return tenBAD_GEN_AUTH;
|
||||
}
|
||||
@@ -254,7 +254,7 @@ TransactionEngineResult TransactionEngine::setAuthorized(const SerializedTransac
|
||||
SLE::pointer sleGen = mLedger->getGenerator(qry, hGeneratorID);
|
||||
if (!sleGen)
|
||||
{
|
||||
std::cerr << "createGenerator: creating generator" << std::endl;
|
||||
Log(lsTRACE) << "createGenerator: creating generator";
|
||||
// Create the generator.
|
||||
sleGen = boost::make_shared<SerializedLedgerEntry>(ltGENERATOR_MAP);
|
||||
|
||||
@@ -268,7 +268,7 @@ TransactionEngineResult TransactionEngine::setAuthorized(const SerializedTransac
|
||||
{
|
||||
// Doing a claim. Must set generator.
|
||||
// Generator is already in use. Regular passphrases limited to one wallet.
|
||||
std::cerr << "createGenerator: generator already in use" << std::endl;
|
||||
Log(lsWARNING) << "createGenerator: generator already in use";
|
||||
|
||||
return tenGEN_IN_USE;
|
||||
}
|
||||
@@ -288,7 +288,7 @@ TransactionEngineResult TransactionEngine::setAuthorized(const SerializedTransac
|
||||
TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTransaction& txn,
|
||||
TransactionEngineParams params, uint32 targetLedger)
|
||||
{
|
||||
std::cerr << "applyTransaction>" << std::endl;
|
||||
Log(lsTRACE) << "applyTransaction>";
|
||||
|
||||
mLedger = mDefaultLedger;
|
||||
assert(mLedger);
|
||||
@@ -308,7 +308,7 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
SerializedTransaction s2(sit);
|
||||
if (!s2.isEquivalent(txn))
|
||||
{
|
||||
std::cerr << "Transaction serdes mismatch" << std::endl;
|
||||
Log(lsFATAL) << "Transaction serdes mismatch";
|
||||
Json::StyledStreamWriter ssw;
|
||||
ssw.write(Log(lsINFO).ref(), txn.getJson(0));
|
||||
ssw.write(Log(lsFATAL).ref(), s2.getJson(0));
|
||||
@@ -322,7 +322,7 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
uint256 txID = txn.getTransactionID();
|
||||
if (!txID)
|
||||
{
|
||||
std::cerr << "applyTransaction: invalid transaction id" << std::endl;
|
||||
Log(lsWARNING) << "applyTransaction: invalid transaction id";
|
||||
|
||||
result = tenINVALID;
|
||||
}
|
||||
@@ -344,7 +344,7 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
// Consistency: really signed.
|
||||
if (terSUCCESS == result && !txn.checkSign(naSigningPubKey))
|
||||
{
|
||||
std::cerr << "applyTransaction: Invalid transaction: bad signature" << std::endl;
|
||||
Log(lsWARNING) << "applyTransaction: Invalid transaction: bad signature";
|
||||
|
||||
result = tenINVALID;
|
||||
}
|
||||
@@ -389,12 +389,12 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
break;
|
||||
|
||||
case ttINVALID:
|
||||
std::cerr << "applyTransaction: Invalid transaction: ttINVALID transaction type" << std::endl;
|
||||
Log(lsWARNING) << "applyTransaction: Invalid transaction: ttINVALID transaction type";
|
||||
result = tenINVALID;
|
||||
break;
|
||||
|
||||
default:
|
||||
std::cerr << "applyTransaction: Invalid transaction: unknown transaction type" << std::endl;
|
||||
Log(lsWARNING) << "applyTransaction: Invalid transaction: unknown transaction type";
|
||||
result = tenUNKNOWN;
|
||||
break;
|
||||
}
|
||||
@@ -408,7 +408,7 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
{
|
||||
if (saPaid < saCost)
|
||||
{
|
||||
std::cerr << "applyTransaction: insufficient fee" << std::endl;
|
||||
Log(lsINFO) << "applyTransaction: insufficient fee";
|
||||
|
||||
result = tenINSUF_FEE_P;
|
||||
}
|
||||
@@ -418,7 +418,7 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
if (!saPaid.isZero())
|
||||
{
|
||||
// Transaction is malformed.
|
||||
std::cerr << "applyTransaction: fee not allowed" << std::endl;
|
||||
Log(lsWARNING) << "applyTransaction: fee not allowed";
|
||||
|
||||
result = tenINSUF_FEE_P;
|
||||
}
|
||||
@@ -429,7 +429,7 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
uint160 srcAccountID = txn.getSourceAccount().getAccountID();
|
||||
if (terSUCCESS == result && !srcAccountID)
|
||||
{
|
||||
std::cerr << "applyTransaction: bad source id" << std::endl;
|
||||
Log(lsWARNING) << "applyTransaction: bad source id";
|
||||
|
||||
result = tenINVALID;
|
||||
}
|
||||
@@ -455,7 +455,8 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
|
||||
if (!sleSrc)
|
||||
{
|
||||
std::cerr << str(boost::format("applyTransaction: Delay transaction: source account does not exisit: %s") % txn.getSourceAccount().humanAccountID()) << std::endl;
|
||||
Log(lsTRACE) << str(boost::format("applyTransaction: Delay transaction: source account does not exist: %s") %
|
||||
txn.getSourceAccount().humanAccountID());
|
||||
|
||||
result = terNO_ACCOUNT;
|
||||
}
|
||||
@@ -473,7 +474,7 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
case ttCLAIM:
|
||||
if (bHaveAuthKey)
|
||||
{
|
||||
std::cerr << "applyTransaction: Account already claimed." << std::endl;
|
||||
Log(lsWARNING) << "applyTransaction: Account already claimed.";
|
||||
|
||||
result = tenCLAIMED;
|
||||
}
|
||||
@@ -496,8 +497,8 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
if (naSigningPubKey.getAccountID() != srcAccountID)
|
||||
{
|
||||
// Signing Pub Key must be for Source Account ID.
|
||||
std::cerr << "sourceAccountID: " << naSigningPubKey.humanAccountID() << std::endl;
|
||||
std::cerr << "txn accountID: " << txn.getSourceAccount().humanAccountID() << std::endl;
|
||||
Log(lsWARNING) << "sourceAccountID: " << naSigningPubKey.humanAccountID();
|
||||
Log(lsWARNING) << "txn accountID: " << txn.getSourceAccount().humanAccountID();
|
||||
|
||||
result = tenBAD_CLAIM_ID;
|
||||
}
|
||||
@@ -509,8 +510,8 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
if (naSigningPubKey.getAccountID() != srcAccountID)
|
||||
{
|
||||
// Signing Pub Key must be for Source Account ID.
|
||||
std::cerr << "sourceAccountID: " << naSigningPubKey.humanAccountID() << std::endl;
|
||||
std::cerr << "txn accountID: " << txn.getSourceAccount().humanAccountID() << std::endl;
|
||||
Log(lsWARNING) << "sourceAccountID: " << naSigningPubKey.humanAccountID();
|
||||
Log(lsWARNING) << "txn accountID: " << txn.getSourceAccount().humanAccountID();
|
||||
|
||||
result = tenBAD_SET_ID;
|
||||
}
|
||||
@@ -573,12 +574,12 @@ TransactionEngineResult TransactionEngine::applyTransaction(const SerializedTran
|
||||
else if (!saCost.isZero())
|
||||
{
|
||||
uint32 a_seq = sleSrc->getIFieldU32(sfSequence);
|
||||
Log(lsINFO) << "Aseq=" << a_seq << ", Tseq=" << t_seq;
|
||||
Log(lsTRACE) << "Aseq=" << a_seq << ", Tseq=" << t_seq;
|
||||
if (t_seq != a_seq)
|
||||
{
|
||||
if (a_seq < t_seq)
|
||||
{
|
||||
std::cerr << "applyTransaction: future sequence number" << std::endl;
|
||||
Log(lsTRACE) << "applyTransaction: future sequence number";
|
||||
|
||||
result = terPRE_SEQ;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "RPC.h"
|
||||
#include "BitcoinUtil.h"
|
||||
#include "Config.h"
|
||||
#include "Log.h"
|
||||
|
||||
using namespace boost;
|
||||
using namespace boost::asio;
|
||||
@@ -71,7 +72,7 @@ std::string rfc1123Time()
|
||||
|
||||
std::string HTTPReply(int nStatus, const std::string& strMsg)
|
||||
{
|
||||
std::cout << "HTTP Reply " << nStatus << " " << strMsg << std::endl;
|
||||
Log(lsTRACE) << "HTTP Reply " << nStatus << " " << strMsg;
|
||||
|
||||
if (nStatus == 401)
|
||||
return strprintf("HTTP/1.0 401 Authorization Required\r\n"
|
||||
|
||||
Reference in New Issue
Block a user