Fix a bug that causes excessive GetObjByHash queries.

This commit is contained in:
JoelKatz
2013-01-07 22:47:16 -08:00
parent c2a4cc8321
commit 69f42e6f02
2 changed files with 8 additions and 2 deletions

View File

@@ -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());
}

View File

@@ -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();
}
}
}