mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 00:00:29 +03:00
IT WORKS, floodfill confirmed working on test network
This commit is contained in:
parent
75fc8202ab
commit
d37482ada1
@ -165,9 +165,10 @@ namespace i2p
|
|||||||
buf += 32;
|
buf += 32;
|
||||||
memcpy (buf, replyTunnel->GetNextIdentHash (), 32); // reply tunnel GW
|
memcpy (buf, replyTunnel->GetNextIdentHash (), 32); // reply tunnel GW
|
||||||
buf += 32;
|
buf += 32;
|
||||||
*buf = DATABASE_LOOKUP_DELIVERY_FLAG | DATABASE_LOOKUP_ENCRYPTION_FLAG | DATABASE_LOOKUP_TYPE_LEASESET_LOOKUP; // flags
|
*buf = DATABASE_LOOKUP_DELIVERY_FLAG | DATABASE_LOOKUP_ENCRYPTION_FLAG | DATABASE_LOOKUP_TYPE_LEASESET_LOOKUP; // flags
|
||||||
htobe32buf (buf + 1, replyTunnel->GetNextTunnelID ()); // reply tunnel ID
|
buf ++;
|
||||||
buf += 5;
|
htobe32buf (buf, replyTunnel->GetNextTunnelID ()); // reply tunnel ID
|
||||||
|
buf += 4;
|
||||||
|
|
||||||
// excluded
|
// excluded
|
||||||
htobe16buf (buf, cnt);
|
htobe16buf (buf, cnt);
|
||||||
@ -182,7 +183,7 @@ namespace i2p
|
|||||||
}
|
}
|
||||||
// encryption
|
// encryption
|
||||||
memcpy (buf, replyKey, 32);
|
memcpy (buf, replyKey, 32);
|
||||||
buf[32] = (uint8_t) 1; // 1 tag
|
buf[32] = uint8_t( 1 ); // 1 tag
|
||||||
memcpy (buf + 33, replyTag, 32);
|
memcpy (buf + 33, replyTag, 32);
|
||||||
buf += 65;
|
buf += 65;
|
||||||
|
|
||||||
|
15
NetDb.cpp
15
NetDb.cpp
@ -724,22 +724,21 @@ namespace data
|
|||||||
}
|
}
|
||||||
if (!found)
|
if (!found)
|
||||||
{
|
{
|
||||||
std::set<IdentHash> excludedRouters;
|
std::set<IdentHash> excLudedrouters;
|
||||||
|
const uint8_t * exclude_ident = excluded;
|
||||||
for (int i = 0; i < numExcluded; i++)
|
for (int i = 0; i < numExcluded; i++)
|
||||||
{
|
{
|
||||||
excludedRouters.insert (excluded);
|
excludedRouters.insert (exclude_ident);
|
||||||
excluded += 32;
|
exclude_ident += 32;
|
||||||
}
|
}
|
||||||
closestFloodfills = GetClosestFloodfills (ident, 3, excludedRouters, true);
|
closestFloodfills = GetClosestFloodfills (ident, 3, excludedRouters, true);
|
||||||
if (!numExcluded) // save if no excluded
|
if (!numExcluded) // save if no excluded
|
||||||
m_LookupResponses[ident] = std::make_pair(closestFloodfills, i2p::util::GetSecondsSinceEpoch ());
|
m_LookupResponses[ident] = std::make_pair(closestFloodfills, i2p::util::GetSecondsSinceEpoch ());
|
||||||
}
|
}
|
||||||
else
|
|
||||||
excluded += numExcluded * 32;
|
|
||||||
replyMsg = CreateDatabaseSearchReply (ident, closestFloodfills);
|
replyMsg = CreateDatabaseSearchReply (ident, closestFloodfills);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
excluded += numExcluded * 32;
|
||||||
if (replyMsg)
|
if (replyMsg)
|
||||||
{
|
{
|
||||||
if (replyTunnelID)
|
if (replyTunnelID)
|
||||||
@ -751,7 +750,7 @@ namespace data
|
|||||||
const uint8_t numTags = excluded[32];
|
const uint8_t numTags = excluded[32];
|
||||||
if (numTags)
|
if (numTags)
|
||||||
{
|
{
|
||||||
const i2p::garlic::SessionTag sessionTag(excluded + 33); // take first tag
|
const i2p::garlic::SessionTag sessionTag(excluded + 33); // take first tag
|
||||||
i2p::garlic::GarlicRoutingSession garlic (sessionKey, sessionTag);
|
i2p::garlic::GarlicRoutingSession garlic (sessionKey, sessionTag);
|
||||||
replyMsg = garlic.WrapSingleMessage (replyMsg);
|
replyMsg = garlic.WrapSingleMessage (replyMsg);
|
||||||
if(replyMsg == nullptr) LogPrint(eLogError, "NetDb: failed to wrap message");
|
if(replyMsg == nullptr) LogPrint(eLogError, "NetDb: failed to wrap message");
|
||||||
|
Loading…
Reference in New Issue
Block a user