1
0
mirror of https://github.com/PurpleI2P/i2pd.git synced 2025-02-07 03:34:15 +00:00

check for pending LeaseSet request

This commit is contained in:
orignal 2015-01-08 22:04:41 -05:00
parent 1bbb86d304
commit c61ed150b7

View File

@ -464,14 +464,24 @@ namespace client
{ {
LeaseSetRequest * request = new LeaseSetRequest (m_Service); LeaseSetRequest * request = new LeaseSetRequest (m_Service);
request->requestComplete = requestComplete; request->requestComplete = requestComplete;
m_LeaseSetRequests[dest] = request; auto ret = m_LeaseSetRequests.insert (std::pair<i2p::data::IdentHash, LeaseSetRequest *>(dest,request));
if (!SendLeaseSetRequest (dest, floodfill, request)) if (ret.second) // inserted
{ {
// request failed if (!SendLeaseSetRequest (dest, floodfill, request))
{
// request failed
if (request->requestComplete) request->requestComplete (false);
delete request;
m_LeaseSetRequests.erase (dest);
}
}
else // duplicate
{
LogPrint (eLogError, "Request of ", dest.ToBase64 (), " is pending already");
// TODO: queue up requests
if (request->requestComplete) request->requestComplete (false); if (request->requestComplete) request->requestComplete (false);
delete request; delete request;
m_LeaseSetRequests.erase (dest); }
}
} }
else else
LogPrint (eLogError, "No floodfills found"); LogPrint (eLogError, "No floodfills found");