mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-27 06:25: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;
|
cLog(lsTRACE) << "base=" << mHaveBase << " tx=" << mHaveTransactions << " as=" << mHaveState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!mHaveBase)
|
||||||
|
tryLocal();
|
||||||
|
|
||||||
ripple::TMGetLedger tmGL;
|
ripple::TMGetLedger tmGL;
|
||||||
tmGL.set_ledgerhash(mHash.begin(), mHash.size());
|
tmGL.set_ledgerhash(mHash.begin(), mHash.size());
|
||||||
if (getTimeouts() != 0)
|
if (getTimeouts() != 0)
|
||||||
@@ -244,6 +247,7 @@ void LedgerAcquire::trigger(Peer::ref peer)
|
|||||||
bool typeSet = false;
|
bool typeSet = false;
|
||||||
BOOST_FOREACH(neededHash_t& p, need)
|
BOOST_FOREACH(neededHash_t& p, need)
|
||||||
{
|
{
|
||||||
|
theApp->getOPs().addWantedHash(p.second);
|
||||||
if (!typeSet)
|
if (!typeSet)
|
||||||
{
|
{
|
||||||
tmBH.set_type(p.first);
|
tmBH.set_type(p.first);
|
||||||
@@ -251,7 +255,6 @@ void LedgerAcquire::trigger(Peer::ref peer)
|
|||||||
}
|
}
|
||||||
if (p.first == tmBH.type())
|
if (p.first == tmBH.type())
|
||||||
{
|
{
|
||||||
theApp->getOPs().addWantedHash(p.second);
|
|
||||||
ripple::TMIndexedObject *io = tmBH.add_objects();
|
ripple::TMIndexedObject *io = tmBH.add_objects();
|
||||||
io->set_hash(p.second.begin(), p.second.size());
|
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));
|
sendPacket(boost::make_shared<PackedMessage>(packet, ripple::mtGET_OBJECTS));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1151,6 +1152,8 @@ void Peer::recvGetObjectByHash(ripple::TMGetObjectByHash& packet)
|
|||||||
else
|
else
|
||||||
theApp->getHashedObjectStore().store(type, seq, data, hash);
|
theApp->getHashedObjectStore().store(type, seq, data, hash);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
cLog(lsWARNING) << "Received unwanted hash from peer " << getIP();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user