diff --git a/src/cpp/ripple/Amount.cpp b/src/cpp/ripple/Amount.cpp index a799148ccd..ccb7df4851 100644 --- a/src/cpp/ripple/Amount.cpp +++ b/src/cpp/ripple/Amount.cpp @@ -968,10 +968,6 @@ STAmount STAmount::multiply(const STAmount& v1, const STAmount& v2, const uint16 --offset2; } - int finOffset = offset1 + offset2; - if ((finOffset > 80) || (finOffset < -96)) - throw std::runtime_error("multiplication produces out of range result"); - // Compute (numerator*10 * denominator*10) / 10^18 with rounding CBigNum v; if ((BN_add_word(&v, value1) != 1) || diff --git a/src/cpp/ripple/FieldNames.cpp b/src/cpp/ripple/FieldNames.cpp index 0d7617ae41..590f85d6b0 100644 --- a/src/cpp/ripple/FieldNames.cpp +++ b/src/cpp/ripple/FieldNames.cpp @@ -33,8 +33,8 @@ static int initFields() sfSignature.notSigningField(); sfIndexes.setMeta(SField::sMD_Never); - sfPreviousTxnID.setMeta(SField::sMD_Never); - sfPreviousTxnLgrSeq.setMeta(SField::sMD_Never); + sfPreviousTxnID.setMeta(SField::sMD_DeleteFinal); + sfPreviousTxnLgrSeq.setMeta(SField::sMD_DeleteFinal); sfLedgerEntryType.setMeta(SField::sMD_Never); sfRootIndex.setMeta(SField::sMD_Always); diff --git a/src/cpp/ripple/JobQueue.h b/src/cpp/ripple/JobQueue.h index 884b9bf7b8..43659f8e8f 100644 --- a/src/cpp/ripple/JobQueue.h +++ b/src/cpp/ripple/JobQueue.h @@ -21,10 +21,11 @@ enum JobType { // must be in priority order, low to high jtINVALID = -1, - jtVALIDATION_ut = 0, // A validation from an untrusted source + jtVALIDATION_ut = 1, // A validation from an untrusted source jtPROOFWORK = 2, // A proof of work demand from another server - jtTRANSACTION = 3, // A transaction received from the network - jtPROPOSAL_ut = 4, // A proposal from an untrusted source + jtPROPOSAL_ut = 3, // A proposal from an untrusted source + jtCLIENT = 4, // A websocket command from the client + jtTRANSACTION = 5, // A transaction received from the network jtVALIDATION_t = 6, // A validation from a trusted source jtTRANSACTION_l = 7, // A local transaction jtPROPOSAL_t = 8, // A proposal from a trusted source @@ -32,7 +33,6 @@ enum JobType jtDEATH = 10, // job of death, used internally // special types not dispatched by the job pool - jtCLIENT = 16, jtPEER = 17, jtDISK = 18, jtRPC = 19, diff --git a/src/cpp/ripple/WSHandler.h b/src/cpp/ripple/WSHandler.h index 8d08df5dc6..824c690611 100644 --- a/src/cpp/ripple/WSHandler.h +++ b/src/cpp/ripple/WSHandler.h @@ -99,7 +99,12 @@ public: void on_message(connection_ptr cpClient, message_ptr mpMessage) { - LoadEvent::pointer event = theApp->getJobQueue().getLoadEvent(jtCLIENT); + theApp->getJobQueue().addJob(jtCLIENT, + boost::bind(&WSServerHandler::do_message, this, _1, cpClient, mpMessage)); + } + + void do_message(Job&, connection_ptr cpClient, message_ptr mpMessage) + { Json::Value jvRequest; Json::Reader jrReader;