don't crash when we get no routers from lookup

This commit is contained in:
Jeff Becker 2019-05-09 11:51:21 -04:00
parent a0c9d912f5
commit 1d74585637
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05
1 changed files with 13 additions and 6 deletions

View File

@ -704,11 +704,9 @@ namespace llarp
bool
Endpoint::HandleGotRouterMessage(dht::GotRouterMessage_constptr msg)
{
auto itr = m_PendingRouters.find(msg->R[0].pubkey);
if(itr == m_PendingRouters.end())
return false;
if(msg->R.size() == 1)
if(msg->R.size())
{
auto itr = m_PendingRouters.find(msg->R[0].pubkey);
llarp_async_verify_rc* job = new llarp_async_verify_rc;
job->nodedb = m_Router->nodedb();
job->cryptoworker = m_Router->threadpool();
@ -728,8 +726,17 @@ namespace llarp
}
else
{
itr->second.InformResult({});
m_PendingRouters.erase(itr);
auto itr = m_PendingRouters.begin();
while(itr != m_PendingRouters.end())
{
if(itr->second.txid == msg->txid)
{
itr->second.InformResult({});
itr = m_PendingRouters.erase(itr);
}
else
++itr;
}
}
return true;
}