Don't process validations signed more than two minutes ago.

This commit is contained in:
David Schwartz
2013-09-24 15:47:56 -07:00
parent 2f77ca416a
commit 794cd03b8f

View File

@@ -1476,6 +1476,7 @@ static void checkValidation (Job&, SerializedValidation::pointer val, bool isTru
void PeerImp::recvValidation (const boost::shared_ptr<protocol::TMValidation>& packet, Application::ScopedLockType& masterLockHolder)
{
uint32 closeTime = getApp().getOPs().getCloseTimeNC();
masterLockHolder.unlock ();
if (packet->validation ().size () < 50)
@@ -1494,6 +1495,13 @@ void PeerImp::recvValidation (const boost::shared_ptr<protocol::TMValidation>& p
SerializerIterator sit (s);
SerializedValidation::pointer val = boost::make_shared<SerializedValidation> (boost::ref (sit), false);
if (closeTime > (120 + val->getFieldU32(sfSigningTime)))
{
WriteLog (lsTRACE, Peer) << "Validation is more than two minutes old";
applyLoadCharge (LT_UnwantedData);
return;
}
if (! getApp().getHashRouter ().addSuppressionPeer (s.getSHA512Half(), mPeerId))
{
WriteLog (lsTRACE, Peer) << "Validation is duplicate";