From 5073185354cbaf812b8063a27e68af267026a062 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 23 Jun 2012 22:45:24 -0700 Subject: [PATCH] Remove a redundant and expensive test. --- src/NetworkOPs.cpp | 1 - src/Peer.cpp | 5 ++++- src/SerializedValidation.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/NetworkOPs.cpp b/src/NetworkOPs.cpp index 9280ea83d2..e4d8b4af42 100644 --- a/src/NetworkOPs.cpp +++ b/src/NetworkOPs.cpp @@ -647,7 +647,6 @@ std::vector< std::pair > bool NetworkOPs::recvValidation(SerializedValidation::pointer val) { Log(lsINFO) << "recvValidation " << val->getLedgerHash().GetHex(); - return theApp->getValidations().addValidation(val); } diff --git a/src/Peer.cpp b/src/Peer.cpp index 6159f186f0..f4cbbcb0a9 100644 --- a/src/Peer.cpp +++ b/src/Peer.cpp @@ -735,15 +735,18 @@ void Peer::recvValidation(newcoin::TMValidation& packet) { Serializer s(packet.validation()); SerializerIterator sit(s); - SerializedValidation::pointer val = boost::make_shared(boost::ref(sit)); + SerializedValidation::pointer val = boost::make_shared(boost::ref(sit), false); + uint256 signingHash = val->getSigningHash(); if (!theApp->isNew(signingHash)) return; + if (!val->isValid(signingHash)) { punishPeer(PP_UNKNOWN_REQUEST); return; } + if (theApp->getOPs().recvValidation(val)) { PackedMessage::pointer message = boost::make_shared(packet, newcoin::mtVALIDATION); diff --git a/src/SerializedValidation.cpp b/src/SerializedValidation.cpp index b9d89e4f2a..71c11c831c 100644 --- a/src/SerializedValidation.cpp +++ b/src/SerializedValidation.cpp @@ -16,7 +16,7 @@ const uint32 SerializedValidation::sValidationMagic = 0x4c575200; // "LGR" SerializedValidation::SerializedValidation(SerializerIterator& sit, bool checkSignature) : STObject(sValidationFormat, sit), mSignature(sit, "Signature"), mTrusted(false) { - if (!isValid()) throw std::runtime_error("Invalid validation"); + if (checkSignature && !isValid()) throw std::runtime_error("Invalid validation"); } SerializedValidation::SerializedValidation(const uint256& ledgerHash, uint64 closeTime,