Capture setContent by-value instead of by-reference (#2006)

Co-authored-by: Grant Limberg <glimberg@users.noreply.github.com>
This commit is contained in:
Brenton Bostick 2023-05-17 20:55:32 -04:00 committed by GitHub
parent e2dad367b4
commit f3da2b4031
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 26 deletions

View file

@ -819,7 +819,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
httplib::Server &s, httplib::Server &s,
const std::function<void(const httplib::Request&, httplib::Response&, std::string)> setContent) const std::function<void(const httplib::Request&, httplib::Response&, std::string)> setContent)
{ {
s.Get("/controller/network", [&](const httplib::Request &req, httplib::Response &res) { s.Get("/controller/network", [&, setContent](const httplib::Request &req, httplib::Response &res) {
std::set<uint64_t> networkIds; std::set<uint64_t> networkIds;
_db.networks(networkIds); _db.networks(networkIds);
char tmp[64]; char tmp[64];
@ -833,7 +833,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
s.Get("/controller/network/([0-9a-fA-F]{16})", [&](const httplib::Request &req, httplib::Response &res) { s.Get("/controller/network/([0-9a-fA-F]{16})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1]; auto networkID = req.matches[1];
uint64_t nwid = Utils::hexStrToU64(networkID.str().c_str()); uint64_t nwid = Utils::hexStrToU64(networkID.str().c_str());
json network; json network;
@ -845,7 +845,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
setContent(req, res, network.dump()); setContent(req, res, network.dump());
}); });
auto createNewNetwork = [&](const httplib::Request &req, httplib::Response &res) { auto createNewNetwork = [&, setContent](const httplib::Request &req, httplib::Response &res) {
fprintf(stderr, "creating new network (new style)\n"); fprintf(stderr, "creating new network (new style)\n");
uint64_t nwid = 0; uint64_t nwid = 0;
uint64_t nwidPrefix = (Utils::hexStrToU64(_signingIdAddressString.c_str()) << 24) & 0xffffffffff000000ULL; uint64_t nwidPrefix = (Utils::hexStrToU64(_signingIdAddressString.c_str()) << 24) & 0xffffffffff000000ULL;
@ -869,7 +869,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
s.Put("/controller/network", createNewNetwork); s.Put("/controller/network", createNewNetwork);
s.Post("/controller/network", createNewNetwork); s.Post("/controller/network", createNewNetwork);
auto createNewNetworkOldAndBusted = [&](const httplib::Request &req, httplib::Response &res) { auto createNewNetworkOldAndBusted = [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto inID = req.matches[1].str(); auto inID = req.matches[1].str();
if (inID != _signingIdAddressString) { if (inID != _signingIdAddressString) {
@ -898,7 +898,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
s.Put("/controller/network/([0-9a-fA-F]{10})______", createNewNetworkOldAndBusted); s.Put("/controller/network/([0-9a-fA-F]{10})______", createNewNetworkOldAndBusted);
s.Post("/controller/network/([0-9a-fA-F]{10})______", createNewNetworkOldAndBusted); s.Post("/controller/network/([0-9a-fA-F]{10})______", createNewNetworkOldAndBusted);
s.Delete("/controller/network/([0-9a-fA-F]{16})", [&](const httplib::Request &req, httplib::Response &res) { s.Delete("/controller/network/([0-9a-fA-F]{16})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1].str(); auto networkID = req.matches[1].str();
uint64_t nwid = Utils::hexStrToU64(networkID.c_str()); uint64_t nwid = Utils::hexStrToU64(networkID.c_str());
@ -912,7 +912,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
setContent(req, res, network.dump()); setContent(req, res, network.dump());
}); });
s.Get("/controller/network/([0-9a-fA-F]{16})/member", [&](const httplib::Request &req, httplib::Response &res) { s.Get("/controller/network/([0-9a-fA-F]{16})/member", [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1]; auto networkID = req.matches[1];
uint64_t nwid = Utils::hexStrToU64(networkID.str().c_str()); uint64_t nwid = Utils::hexStrToU64(networkID.str().c_str());
json network; json network;
@ -938,7 +938,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
s.Get("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", [&](const httplib::Request &req, httplib::Response &res) { s.Get("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1]; auto networkID = req.matches[1];
auto memberID = req.matches[2]; auto memberID = req.matches[2];
uint64_t nwid = Utils::hexStrToU64(networkID.str().c_str()); uint64_t nwid = Utils::hexStrToU64(networkID.str().c_str());
@ -953,7 +953,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
setContent(req, res, member.dump()); setContent(req, res, member.dump());
}); });
auto memberPost = [&](const httplib::Request &req, httplib::Response &res) { auto memberPost = [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1].str(); auto networkID = req.matches[1].str();
auto memberID = req.matches[2].str(); auto memberID = req.matches[2].str();
uint64_t nwid = Utils::hexStrToU64(networkID.c_str()); uint64_t nwid = Utils::hexStrToU64(networkID.c_str());
@ -1059,7 +1059,7 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
s.Put("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", memberPost); s.Put("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", memberPost);
s.Post("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", memberPost); s.Post("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", memberPost);
s.Delete("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", [&](const httplib::Request &req, httplib::Response &res) { s.Delete("/controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto networkID = req.matches[1].str(); auto networkID = req.matches[1].str();
auto memberID = req.matches[2].str(); auto memberID = req.matches[2].str();

View file

@ -1519,7 +1519,7 @@ public:
_controlPlane.Get("/bond/show/([0-9a-fA-F]{10})", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/bond/show/([0-9a-fA-F]{10})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
if (!_node->bondController()->inUse()) { if (!_node->bondController()->inUse()) {
setContent(req, res, ""); setContent(req, res, "");
res.status = 400; res.status = 400;
@ -1547,7 +1547,7 @@ public:
_node->freeQueryResult((void *)pl); _node->freeQueryResult((void *)pl);
}); });
auto bondRotate = [&](const httplib::Request &req, httplib::Response &res) { auto bondRotate = [&, setContent](const httplib::Request &req, httplib::Response &res) {
if (!_node->bondController()->inUse()) { if (!_node->bondController()->inUse()) {
setContent(req, res, ""); setContent(req, res, "");
res.status = 400; res.status = 400;
@ -1574,7 +1574,7 @@ public:
_controlPlane.Post("/bond/rotate/([0-9a-fA-F]{10})", bondRotate); _controlPlane.Post("/bond/rotate/([0-9a-fA-F]{10})", bondRotate);
_controlPlane.Put("/bond/rotate/([0-9a-fA-F]{10})", bondRotate); _controlPlane.Put("/bond/rotate/([0-9a-fA-F]{10})", bondRotate);
_controlPlane.Get("/config", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/config", [&, setContent](const httplib::Request &req, httplib::Response &res) {
std::string config; std::string config;
{ {
Mutex::Lock lc(_localConfig_m); Mutex::Lock lc(_localConfig_m);
@ -1586,7 +1586,7 @@ public:
setContent(req, res, config); setContent(req, res, config);
}); });
auto configPost = [&](const httplib::Request &req, httplib::Response &res) { auto configPost = [&, setContent](const httplib::Request &req, httplib::Response &res) {
json j(OSUtils::jsonParse(req.body)); json j(OSUtils::jsonParse(req.body));
if (j.is_object()) { if (j.is_object()) {
Mutex::Lock lcl(_localConfig_m); Mutex::Lock lcl(_localConfig_m);
@ -1604,7 +1604,7 @@ public:
_controlPlane.Post("/config/settings", configPost); _controlPlane.Post("/config/settings", configPost);
_controlPlane.Put("/config/settings", configPost); _controlPlane.Put("/config/settings", configPost);
_controlPlane.Get("/health", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/health", [&, setContent](const httplib::Request &req, httplib::Response &res) {
json out = json::object(); json out = json::object();
char tmp[256]; char tmp[256];
@ -1624,7 +1624,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
_controlPlane.Get("/moon", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/moon", [&, setContent](const httplib::Request &req, httplib::Response &res) {
std::vector<World> moons(_node->moons()); std::vector<World> moons(_node->moons());
auto out = json::array(); auto out = json::array();
@ -1636,7 +1636,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
_controlPlane.Get("/moon/([0-9a-fA-F]{10})", [&](const httplib::Request &req, httplib::Response &res){ _controlPlane.Get("/moon/([0-9a-fA-F]{10})", [&, setContent](const httplib::Request &req, httplib::Response &res){
std::vector<World> moons(_node->moons()); std::vector<World> moons(_node->moons());
auto input = req.matches[1]; auto input = req.matches[1];
auto out = json::object(); auto out = json::object();
@ -1650,7 +1650,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
auto moonPost = [&](const httplib::Request &req, httplib::Response &res) { auto moonPost = [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto input = req.matches[1]; auto input = req.matches[1];
uint64_t seed = 0; uint64_t seed = 0;
try { try {
@ -1690,7 +1690,7 @@ public:
_controlPlane.Post("/moon/([0-9a-fA-F]{10})", moonPost); _controlPlane.Post("/moon/([0-9a-fA-F]{10})", moonPost);
_controlPlane.Put("/moon/([0-9a-fA-F]{10})", moonPost); _controlPlane.Put("/moon/([0-9a-fA-F]{10})", moonPost);
_controlPlane.Delete("/moon/([0-9a-fA-F]{10})", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Delete("/moon/([0-9a-fA-F]{10})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto input = req.matches[1]; auto input = req.matches[1];
uint64_t id = Utils::hexStrToU64(input.str().c_str()); uint64_t id = Utils::hexStrToU64(input.str().c_str());
auto out = json::object(); auto out = json::object();
@ -1699,7 +1699,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
_controlPlane.Get("/network", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/network", [&, setContent](const httplib::Request &req, httplib::Response &res) {
Mutex::Lock _l(_nets_m); Mutex::Lock _l(_nets_m);
auto out = json::array(); auto out = json::array();
@ -1712,7 +1712,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
_controlPlane.Get("/network/([0-9a-fA-F]{16})", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/network/([0-9a-fA-F]{16})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
Mutex::Lock _l(_nets_m); Mutex::Lock _l(_nets_m);
auto input = req.matches[1]; auto input = req.matches[1];
@ -1728,7 +1728,7 @@ public:
res.status = 404; res.status = 404;
}); });
auto networkPost = [&](const httplib::Request &req, httplib::Response &res) { auto networkPost = [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto input = req.matches[1]; auto input = req.matches[1];
uint64_t wantnw = Utils::hexStrToU64(input.str().c_str()); uint64_t wantnw = Utils::hexStrToU64(input.str().c_str());
_node->join(wantnw, (void*)0, (void*)0); _node->join(wantnw, (void*)0, (void*)0);
@ -1770,7 +1770,7 @@ public:
_controlPlane.Post("/network/([0-9a-fA-F]{16})", networkPost); _controlPlane.Post("/network/([0-9a-fA-F]{16})", networkPost);
_controlPlane.Put("/network/([0-9a-fA-F]){16}", networkPost); _controlPlane.Put("/network/([0-9a-fA-F]){16}", networkPost);
_controlPlane.Delete("/network/([0-9a-fA-F]{16})", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Delete("/network/([0-9a-fA-F]{16})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
auto input = req.matches[1]; auto input = req.matches[1];
auto out = json::object(); auto out = json::object();
ZT_VirtualNetworkList *nws = _node->networks(); ZT_VirtualNetworkList *nws = _node->networks();
@ -1785,7 +1785,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
_controlPlane.Get("/peer", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/peer", [&, setContent](const httplib::Request &req, httplib::Response &res) {
ZT_PeerList *pl = _node->peers(); ZT_PeerList *pl = _node->peers();
auto out = nlohmann::json::array(); auto out = nlohmann::json::array();
@ -1803,7 +1803,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
_controlPlane.Get("/peer/([0-9a-fA-F]{10})", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/peer/([0-9a-fA-F]{10})", [&, setContent](const httplib::Request &req, httplib::Response &res) {
ZT_PeerList *pl = _node->peers(); ZT_PeerList *pl = _node->peers();
auto input = req.matches[1]; auto input = req.matches[1];
@ -1823,7 +1823,7 @@ public:
setContent(req, res, out.dump()); setContent(req, res, out.dump());
}); });
_controlPlane.Get("/status", [&](const httplib::Request &req, httplib::Response &res) { _controlPlane.Get("/status", [&, setContent](const httplib::Request &req, httplib::Response &res) {
ZT_NodeStatus status; ZT_NodeStatus status;
_node->status(&status); _node->status(&status);
@ -1969,7 +1969,7 @@ public:
} }
}); });
_controlPlane.set_exception_handler([&](const httplib::Request &req, httplib::Response &res, std::exception_ptr ep) { _controlPlane.set_exception_handler([&, setContent](const httplib::Request &req, httplib::Response &res, std::exception_ptr ep) {
char buf[1024]; char buf[1024];
auto fmt = "{\"error\": %d, \"description\": \"%s\"}"; auto fmt = "{\"error\": %d, \"description\": \"%s\"}";
try { try {