mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 08:00:38 +03:00
request LeaseSet from 3 floodfills
This commit is contained in:
parent
8d67c5ebcd
commit
38cb57a4c4
28
NetDb.cpp
28
NetDb.cpp
@ -335,19 +335,25 @@ namespace data
|
|||||||
if (inbound)
|
if (inbound)
|
||||||
{
|
{
|
||||||
RequestedDestination * dest = CreateRequestedDestination (destination, isLeaseSet);
|
RequestedDestination * dest = CreateRequestedDestination (destination, isLeaseSet);
|
||||||
auto floodfill = GetClosestFloodfill (destination, dest->GetExcludedPeers ());
|
std::vector<i2p::tunnel::TunnelMessageBlock> msgs;
|
||||||
if (floodfill)
|
// request 3 closests floodfills
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
auto floodfill = GetClosestFloodfill (destination, dest->GetExcludedPeers ());
|
||||||
|
if (floodfill)
|
||||||
|
{
|
||||||
|
// DatabaseLookup message
|
||||||
|
msgs.push_back (i2p::tunnel::TunnelMessageBlock
|
||||||
|
{
|
||||||
|
i2p::tunnel::eDeliveryTypeRouter,
|
||||||
|
floodfill->GetIdentHash (), 0,
|
||||||
|
dest->CreateRequestMessage (floodfill, inbound)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (msgs.size () > 0)
|
||||||
{
|
{
|
||||||
std::vector<i2p::tunnel::TunnelMessageBlock> msgs;
|
|
||||||
// DatabaseLookup message
|
|
||||||
dest->SetLastOutboundTunnel (outbound);
|
dest->SetLastOutboundTunnel (outbound);
|
||||||
msgs.push_back (i2p::tunnel::TunnelMessageBlock
|
|
||||||
{
|
|
||||||
i2p::tunnel::eDeliveryTypeRouter,
|
|
||||||
floodfill->GetIdentHash (), 0,
|
|
||||||
dest->CreateRequestMessage (floodfill, inbound)
|
|
||||||
});
|
|
||||||
|
|
||||||
outbound->SendTunnelDataMsg (msgs);
|
outbound->SendTunnelDataMsg (msgs);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -409,7 +409,7 @@ namespace stream
|
|||||||
}
|
}
|
||||||
Sign (buf, size, buf+ size);
|
Sign (buf, size, buf+ size);
|
||||||
size += 40; // signature
|
size += 40; // signature
|
||||||
|
LogPrint ("Local LeaseSet of ", tunnels.size (), " leases created");
|
||||||
m->len += size + sizeof (I2NPDatabaseStoreMsg);
|
m->len += size + sizeof (I2NPDatabaseStoreMsg);
|
||||||
FillI2NPMessageHeader (m, eI2NPDatabaseStore);
|
FillI2NPMessageHeader (m, eI2NPDatabaseStore);
|
||||||
return m;
|
return m;
|
||||||
|
@ -131,6 +131,7 @@ namespace tunnel
|
|||||||
|
|
||||||
void InboundTunnel::HandleTunnelDataMsg (I2NPMessage * msg)
|
void InboundTunnel::HandleTunnelDataMsg (I2NPMessage * msg)
|
||||||
{
|
{
|
||||||
|
if (IsFailed ()) SetFailed (false); // incoming messages means a tunnel is alive
|
||||||
msg->from = this;
|
msg->from = this;
|
||||||
EncryptTunnelMsg (msg);
|
EncryptTunnelMsg (msg);
|
||||||
m_Endpoint.HandleDecryptedTunnelDataMsg (msg);
|
m_Endpoint.HandleDecryptedTunnelDataMsg (msg);
|
||||||
|
Loading…
Reference in New Issue
Block a user