Make format

pull/1111/head
Stephen Shelton 4 years ago
parent 6966168f5a
commit 4c499fb076
No known key found for this signature in database
GPG Key ID: 09082714F73FAA22

@ -124,8 +124,9 @@ namespace llarp
/// send introset to peer from source with S counter and excluding peers
void
PropagateIntroSetTo(const Key_t& from, uint64_t txid,
const service::EncryptedIntroSet& introset,
const Key_t& tellpeer, bool relayed, uint64_t relayOrder);
const service::EncryptedIntroSet& introset,
const Key_t& tellpeer, bool relayed,
uint64_t relayOrder);
/// initialize dht context and explore every exploreInterval milliseconds
void
@ -555,8 +556,9 @@ namespace llarp
void
Context::PropagateIntroSetTo(const Key_t& from, uint64_t txid,
const service::EncryptedIntroSet& introset,
const Key_t& tellpeer, bool relayed, uint64_t relayOrder)
const service::EncryptedIntroSet& introset,
const Key_t& tellpeer, bool relayed,
uint64_t relayOrder)
{
TXOwner asker(from, txid);
TXOwner peer(tellpeer, ++ids);

@ -94,7 +94,8 @@ namespace llarp
virtual void
PropagateIntroSetTo(const Key_t& source, uint64_t sourceTX,
const service::EncryptedIntroSet& introset,
const Key_t& peer, bool relayed, uint64_t relayOrder) = 0;
const Key_t& peer, bool relayed,
uint64_t relayOrder) = 0;
virtual void
Init(const Key_t& us, AbstractRouter* router,

@ -44,7 +44,7 @@ namespace llarp
if(!introset.Verify(now))
{
llarp::LogWarn("Received PublishIntroMessage with invalid introset: ",
introset);
introset);
// don't propogate or store
replies.emplace_back(new GotIntroMessage({}, txID));
return true;
@ -54,7 +54,7 @@ namespace llarp
{
// don't propogate or store
llarp::LogWarn("Received PublishIntroMessage with expired Introset: ",
introset);
introset);
replies.emplace_back(new GotIntroMessage({}, txID));
return true;
}
@ -63,22 +63,21 @@ namespace llarp
// identify closest 4 routers
auto closestRCs = dht.GetRouter()->nodedb()->FindClosestTo(addr, 4);
if (closestRCs.size() != 4)
if(closestRCs.size() != 4)
{
llarp::LogWarn("Received PublishIntroMessage but only know ",
closestRCs.size(), " nodes");
replies.emplace_back(new GotIntroMessage({}, txID));
return true;
llarp::LogWarn("Received PublishIntroMessage but only know ",
closestRCs.size(), " nodes");
replies.emplace_back(new GotIntroMessage({}, txID));
return true;
}
const auto& us = dht.OurKey();
const auto &us = dht.OurKey();
// function to identify the closest 4 routers we know of for this introset
auto propagateToClosestFour = [&]() {
// grab 1st & 2nd if we are relayOrder == 0, 3rd & 4th otherwise
const auto& rc0 = (relayOrder == 0 ? closestRCs[0] : closestRCs[2]);
const auto& rc1 = (relayOrder == 0 ? closestRCs[1] : closestRCs[3]);
const auto &rc0 = (relayOrder == 0 ? closestRCs[0] : closestRCs[2]);
const auto &rc1 = (relayOrder == 0 ? closestRCs[1] : closestRCs[3]);
const Key_t peer0{rc0.pubkey};
const Key_t peer1{rc1.pubkey};
@ -86,45 +85,45 @@ namespace llarp
bool arePeer0 = (peer0 == us);
bool arePeer1 = (peer1 == us);
if (arePeer0 or arePeer1)
if(arePeer0 or arePeer1)
{
dht.services()->PutNode(introset);
replies.emplace_back(new GotIntroMessage({introset}, txID));
}
if (not arePeer0)
if(not arePeer0)
dht.PropagateIntroSetTo(From, txID, introset, peer0, false, 0);
if (not arePeer1)
if(not arePeer1)
dht.PropagateIntroSetTo(From, txID, introset, peer1, false, 0);
};
if (relayed)
if(relayed)
{
if (relayOrder > 1)
if(relayOrder > 1)
{
llarp::LogWarn("Received PublishIntroMessage with invalid relayOrder: ",
llarp::LogWarn(
"Received PublishIntroMessage with invalid relayOrder: ",
relayOrder);
replies.emplace_back(new GotIntroMessage({}, txID));
return true;
}
propagateToClosestFour();
}
else
{
bool found = false;
for (const auto& rc : closestRCs)
for(const auto &rc : closestRCs)
{
if (rc.pubkey == dht.OurKey())
if(rc.pubkey == dht.OurKey())
{
found = true;
break;
}
}
if (found)
if(found)
{
dht.services()->PutNode(introset);
replies.emplace_back(new GotIntroMessage({introset}, txID));

@ -14,9 +14,9 @@ namespace llarp
{
static const uint64_t MaxPropagationDepth;
llarp::service::EncryptedIntroSet introset;
bool relayed = false;
bool relayed = false;
uint64_t relayOrder = 0;
uint64_t txID = 0;
uint64_t txID = 0;
PublishIntroMessage() : IMessage({})
{
}

@ -8,9 +8,9 @@ namespace llarp
{
namespace dht
{
PublishServiceJob::PublishServiceJob(const TXOwner &asker,
const service::EncryptedIntroSet &introset_,
AbstractContext *ctx, bool relayed_, uint64_t relayOrder_)
PublishServiceJob::PublishServiceJob(
const TXOwner &asker, const service::EncryptedIntroSet &introset_,
AbstractContext *ctx, bool relayed_, uint64_t relayOrder_)
: TX< Key_t, service::EncryptedIntroSet >(
asker, Key_t{introset_.derivedSigningKey}, ctx)
, relayed(relayed_)

@ -20,7 +20,8 @@ namespace llarp
PublishServiceJob(const TXOwner &asker,
const service::EncryptedIntroSet &introset,
AbstractContext *ctx, bool relayed, uint64_t relayOrder);
AbstractContext *ctx, bool relayed,
uint64_t relayOrder);
bool
Validate(const service::EncryptedIntroSet &introset) const override;

@ -494,8 +494,8 @@ namespace llarp
BuildRequestMessage() override
{
auto msg = std::make_shared< routing::DHTMessage >();
msg->M.emplace_back(
std::make_unique< dht::PublishIntroMessage >(m_IntroSet, txid, true, m_relayOrder));
msg->M.emplace_back(std::make_unique< dht::PublishIntroMessage >(
m_IntroSet, txid, true, m_relayOrder));
return msg;
}

Loading…
Cancel
Save