mirror of https://github.com/oxen-io/lokinet
address feedback from jason
* split up ipv6 netmask * revert iwp ack interval change * c++17-isms in ip range map * lambda-ize nodedb * mutable lambdas in transit hops * perfect forwarding of args in abstract router * mutable lambdas in lokid rpc client * notes in readme about nproc
This commit is contained in:
parent
26f62bc260
commit
d7ff6c579c
|
@ -26,7 +26,7 @@ namespace llarp
|
|||
/// How long to keep a replay window for
|
||||
static constexpr auto ReplayWindow = (ReceivalTimeout * 3) / 2;
|
||||
/// How often to acks RX messages
|
||||
static constexpr auto ACKResendInterval = DeliveryTimeout / 4;
|
||||
static constexpr auto ACKResendInterval = DeliveryTimeout / 2;
|
||||
/// How often to retransmit TX fragments
|
||||
static constexpr auto TXFlushInterval = (DeliveryTimeout / 5) * 4;
|
||||
/// How often we send a keepalive
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include <algorithm>
|
||||
#include <map>
|
||||
|
||||
constexpr uint32_t ipv6_flowlabel_mask = 0b00000000000011111111111111111111;
|
||||
constexpr uint32_t ipv6_flowlabel_mask = 0b0000'0000'0000'1111'1111'1111'1111'1111;
|
||||
|
||||
void
|
||||
ipv6_header::FlowLabel(llarp::nuint32_t label)
|
||||
|
|
|
@ -53,8 +53,8 @@ namespace llarp
|
|||
void
|
||||
ForEachEntry(Visit_t visit) const
|
||||
{
|
||||
for (const auto& entry : m_Entries)
|
||||
visit(entry.first, entry.second);
|
||||
for (const auto& [range, value] : m_Entries)
|
||||
visit(range, value);
|
||||
}
|
||||
|
||||
/// convert all values into type T using a transformer
|
||||
|
|
|
@ -505,6 +505,10 @@ namespace llarp
|
|||
};
|
||||
// generate possible ranges to in order of attempts
|
||||
std::list<IPRange> possibleRanges;
|
||||
for (byte_t oct = 16; oct < 32; ++oct)
|
||||
{
|
||||
possibleRanges.emplace_back(IPRange::FromIPv4(172, oct, 0, 1, 16));
|
||||
}
|
||||
for (byte_t oct = 0; oct < 255; ++oct)
|
||||
{
|
||||
possibleRanges.emplace_back(IPRange::FromIPv4(10, oct, 0, 1, 16));
|
||||
|
@ -513,10 +517,6 @@ namespace llarp
|
|||
{
|
||||
possibleRanges.emplace_back(IPRange::FromIPv4(192, 168, oct, 1, 24));
|
||||
}
|
||||
for (byte_t oct = 0; oct < 255; ++oct)
|
||||
{
|
||||
possibleRanges.emplace_back(IPRange::FromIPv4(172, 16, oct, 1, 24));
|
||||
}
|
||||
// for each possible range pick the first one we don't own
|
||||
for (const auto& range : possibleRanges)
|
||||
{
|
||||
|
|
|
@ -57,13 +57,6 @@ llarp_nodedb::Get(const llarp::RouterID& pk, llarp::RouterContact& result)
|
|||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
KillRCJobs(const std::set<std::string>& files)
|
||||
{
|
||||
for (const auto& file : files)
|
||||
fs::remove(file);
|
||||
}
|
||||
|
||||
void
|
||||
llarp_nodedb::RemoveIf(std::function<bool(const llarp::RouterContact& rc)> filter)
|
||||
{
|
||||
|
@ -82,7 +75,10 @@ llarp_nodedb::RemoveIf(std::function<bool(const llarp::RouterContact& rc)> filte
|
|||
++itr;
|
||||
}
|
||||
}
|
||||
disk(std::bind(&KillRCJobs, files));
|
||||
disk([files = std::move(files)]() {
|
||||
for (const auto& file : files)
|
||||
fs::remove(file);
|
||||
});
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -272,7 +268,7 @@ llarp_nodedb::ShouldSaveToDisk(llarp_time_t now) const
|
|||
void
|
||||
llarp_nodedb::AsyncFlushToDisk()
|
||||
{
|
||||
disk(std::bind(&llarp_nodedb::SaveAll, this));
|
||||
disk([this]() { SaveAll(); });
|
||||
m_NextSaveToDisk = llarp::time_now_ms() + m_SaveInterval;
|
||||
}
|
||||
|
||||
|
|
|
@ -248,8 +248,8 @@ namespace llarp
|
|||
{
|
||||
if (m_UpstreamQueue && not m_UpstreamQueue->empty())
|
||||
{
|
||||
r->QueueWork([self = shared_from_this(), data = std::move(m_UpstreamQueue), r]() {
|
||||
self->UpstreamWork(data, r);
|
||||
r->QueueWork([self = shared_from_this(), data = std::move(m_UpstreamQueue), r]() mutable {
|
||||
self->UpstreamWork(std::move(data), r);
|
||||
});
|
||||
}
|
||||
m_UpstreamQueue = nullptr;
|
||||
|
@ -260,8 +260,8 @@ namespace llarp
|
|||
{
|
||||
if (m_DownstreamQueue && not m_DownstreamQueue->empty())
|
||||
{
|
||||
r->QueueWork([self = shared_from_this(), data = std::move(m_DownstreamQueue), r]() {
|
||||
self->DownstreamWork(data, r);
|
||||
r->QueueWork([self = shared_from_this(), data = std::move(m_DownstreamQueue), r]() mutable {
|
||||
self->DownstreamWork(std::move(data), r);
|
||||
});
|
||||
}
|
||||
m_DownstreamQueue = nullptr;
|
||||
|
|
|
@ -293,7 +293,7 @@ namespace llarp
|
|||
NotifyRouterEvent([[maybe_unused]] Params&&... args) const
|
||||
{
|
||||
#ifdef LOKINET_HIVE
|
||||
hive->NotifyEvent(std::make_unique<EventType>(args...));
|
||||
hive->NotifyEvent(std::make_unique<EventType>(std::forward<Params>(args)...));
|
||||
#endif
|
||||
}
|
||||
};
|
||||
|
|
|
@ -155,7 +155,9 @@ namespace llarp
|
|||
return;
|
||||
}
|
||||
// inform router about the new list
|
||||
LogicCall(m_Router->logic(), [r = m_Router, nodeList]() { r->SetRouterWhitelist(nodeList); });
|
||||
LogicCall(m_Router->logic(), [r = m_Router, nodeList = std::move(nodeList)]() mutable {
|
||||
r->SetRouterWhitelist(std::move(nodeList));
|
||||
});
|
||||
}
|
||||
|
||||
SecretKey
|
||||
|
|
Loading…
Reference in New Issue