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
pull/1306/head
Jeff Becker 4 years ago
parent 26f62bc260
commit d7ff6c579c
No known key found for this signature in database
GPG Key ID: F357B3B42F6F9B05

@ -26,7 +26,7 @@ namespace llarp
/// How long to keep a replay window for /// How long to keep a replay window for
static constexpr auto ReplayWindow = (ReceivalTimeout * 3) / 2; static constexpr auto ReplayWindow = (ReceivalTimeout * 3) / 2;
/// How often to acks RX messages /// How often to acks RX messages
static constexpr auto ACKResendInterval = DeliveryTimeout / 4; static constexpr auto ACKResendInterval = DeliveryTimeout / 2;
/// How often to retransmit TX fragments /// How often to retransmit TX fragments
static constexpr auto TXFlushInterval = (DeliveryTimeout / 5) * 4; static constexpr auto TXFlushInterval = (DeliveryTimeout / 5) * 4;
/// How often we send a keepalive /// How often we send a keepalive

@ -12,7 +12,7 @@
#include <algorithm> #include <algorithm>
#include <map> #include <map>
constexpr uint32_t ipv6_flowlabel_mask = 0b00000000000011111111111111111111; constexpr uint32_t ipv6_flowlabel_mask = 0b0000'0000'0000'1111'1111'1111'1111'1111;
void void
ipv6_header::FlowLabel(llarp::nuint32_t label) ipv6_header::FlowLabel(llarp::nuint32_t label)

@ -53,8 +53,8 @@ namespace llarp
void void
ForEachEntry(Visit_t visit) const ForEachEntry(Visit_t visit) const
{ {
for (const auto& entry : m_Entries) for (const auto& [range, value] : m_Entries)
visit(entry.first, entry.second); visit(range, value);
} }
/// convert all values into type T using a transformer /// convert all values into type T using a transformer

@ -505,17 +505,17 @@ namespace llarp
}; };
// generate possible ranges to in order of attempts // generate possible ranges to in order of attempts
std::list<IPRange> possibleRanges; std::list<IPRange> possibleRanges;
for (byte_t oct = 0; oct < 255; ++oct) for (byte_t oct = 16; oct < 32; ++oct)
{ {
possibleRanges.emplace_back(IPRange::FromIPv4(10, oct, 0, 1, 16)); possibleRanges.emplace_back(IPRange::FromIPv4(172, oct, 0, 1, 16));
} }
for (byte_t oct = 0; oct < 255; ++oct) for (byte_t oct = 0; oct < 255; ++oct)
{ {
possibleRanges.emplace_back(IPRange::FromIPv4(192, 168, oct, 1, 24)); possibleRanges.emplace_back(IPRange::FromIPv4(10, oct, 0, 1, 16));
} }
for (byte_t oct = 0; oct < 255; ++oct) for (byte_t oct = 0; oct < 255; ++oct)
{ {
possibleRanges.emplace_back(IPRange::FromIPv4(172, 16, oct, 1, 24)); possibleRanges.emplace_back(IPRange::FromIPv4(192, 168, oct, 1, 24));
} }
// for each possible range pick the first one we don't own // for each possible range pick the first one we don't own
for (const auto& range : possibleRanges) for (const auto& range : possibleRanges)

@ -57,13 +57,6 @@ llarp_nodedb::Get(const llarp::RouterID& pk, llarp::RouterContact& result)
return true; return true;
} }
void
KillRCJobs(const std::set<std::string>& files)
{
for (const auto& file : files)
fs::remove(file);
}
void void
llarp_nodedb::RemoveIf(std::function<bool(const llarp::RouterContact& rc)> filter) 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; ++itr;
} }
} }
disk(std::bind(&KillRCJobs, files)); disk([files = std::move(files)]() {
for (const auto& file : files)
fs::remove(file);
});
} }
bool bool
@ -272,7 +268,7 @@ llarp_nodedb::ShouldSaveToDisk(llarp_time_t now) const
void void
llarp_nodedb::AsyncFlushToDisk() llarp_nodedb::AsyncFlushToDisk()
{ {
disk(std::bind(&llarp_nodedb::SaveAll, this)); disk([this]() { SaveAll(); });
m_NextSaveToDisk = llarp::time_now_ms() + m_SaveInterval; m_NextSaveToDisk = llarp::time_now_ms() + m_SaveInterval;
} }

@ -248,8 +248,8 @@ namespace llarp
{ {
if (m_UpstreamQueue && not m_UpstreamQueue->empty()) if (m_UpstreamQueue && not m_UpstreamQueue->empty())
{ {
r->QueueWork([self = shared_from_this(), data = std::move(m_UpstreamQueue), r]() { r->QueueWork([self = shared_from_this(), data = std::move(m_UpstreamQueue), r]() mutable {
self->UpstreamWork(data, r); self->UpstreamWork(std::move(data), r);
}); });
} }
m_UpstreamQueue = nullptr; m_UpstreamQueue = nullptr;
@ -260,8 +260,8 @@ namespace llarp
{ {
if (m_DownstreamQueue && not m_DownstreamQueue->empty()) if (m_DownstreamQueue && not m_DownstreamQueue->empty())
{ {
r->QueueWork([self = shared_from_this(), data = std::move(m_DownstreamQueue), r]() { r->QueueWork([self = shared_from_this(), data = std::move(m_DownstreamQueue), r]() mutable {
self->DownstreamWork(data, r); self->DownstreamWork(std::move(data), r);
}); });
} }
m_DownstreamQueue = nullptr; m_DownstreamQueue = nullptr;

@ -293,7 +293,7 @@ namespace llarp
NotifyRouterEvent([[maybe_unused]] Params&&... args) const NotifyRouterEvent([[maybe_unused]] Params&&... args) const
{ {
#ifdef LOKINET_HIVE #ifdef LOKINET_HIVE
hive->NotifyEvent(std::make_unique<EventType>(args...)); hive->NotifyEvent(std::make_unique<EventType>(std::forward<Params>(args)...));
#endif #endif
} }
}; };

@ -155,7 +155,9 @@ namespace llarp
return; return;
} }
// inform router about the new list // 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 SecretKey

@ -77,7 +77,7 @@ build:
$ mkdir build $ mkdir build
$ cd build $ cd build
$ cmake .. $ cmake ..
$ make $ make -j$(nproc)
install: install:
@ -93,7 +93,7 @@ build:
$ mkdir build $ mkdir build
$ cd build $ cd build
$ cmake .. $ cmake ..
$ make $ make -j$(nproc)
install: install:

Loading…
Cancel
Save