mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-26 14:05:51 +00:00
Fix a bug that causes excessive GetObjByHash queries.
This commit is contained in:
@@ -225,6 +225,9 @@ void LedgerAcquire::trigger(Peer::ref peer)
|
||||
cLog(lsTRACE) << "base=" << mHaveBase << " tx=" << mHaveTransactions << " as=" << mHaveState;
|
||||
}
|
||||
|
||||
if (!mHaveBase)
|
||||
tryLocal();
|
||||
|
||||
ripple::TMGetLedger tmGL;
|
||||
tmGL.set_ledgerhash(mHash.begin(), mHash.size());
|
||||
if (getTimeouts() != 0)
|
||||
@@ -244,6 +247,7 @@ void LedgerAcquire::trigger(Peer::ref peer)
|
||||
bool typeSet = false;
|
||||
BOOST_FOREACH(neededHash_t& p, need)
|
||||
{
|
||||
theApp->getOPs().addWantedHash(p.second);
|
||||
if (!typeSet)
|
||||
{
|
||||
tmBH.set_type(p.first);
|
||||
@@ -251,7 +255,6 @@ void LedgerAcquire::trigger(Peer::ref peer)
|
||||
}
|
||||
if (p.first == tmBH.type())
|
||||
{
|
||||
theApp->getOPs().addWantedHash(p.second);
|
||||
ripple::TMIndexedObject *io = tmBH.add_objects();
|
||||
io->set_hash(p.second.begin(), p.second.size());
|
||||
}
|
||||
|
||||
@@ -1117,7 +1117,8 @@ void Peer::recvGetObjectByHash(ripple::TMGetObjectByHash& packet)
|
||||
}
|
||||
}
|
||||
}
|
||||
cLog(lsDEBUG) << "GetObjByHash query: had " << reply.objects_size() << " of " << packet.objects_size();
|
||||
cLog(lsDEBUG) << "GetObjByHash query: had " << reply.objects_size() << " of " << packet.objects_size()
|
||||
<< " for " << getIP();
|
||||
sendPacket(boost::make_shared<PackedMessage>(packet, ripple::mtGET_OBJECTS));
|
||||
}
|
||||
else
|
||||
@@ -1151,6 +1152,8 @@ void Peer::recvGetObjectByHash(ripple::TMGetObjectByHash& packet)
|
||||
else
|
||||
theApp->getHashedObjectStore().store(type, seq, data, hash);
|
||||
}
|
||||
else
|
||||
cLog(lsWARNING) << "Received unwanted hash from peer " << getIP();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user