const char* dnsdist_ffi_dnsquestion_get_tag(const dnsdist_ffi_dnsquestion_t* dq, const char* label)
{
- const char * result = nullptr;
+ const char* result = nullptr;
if (dq != nullptr && dq->dq != nullptr && dq->dq->ids.qTag != nullptr) {
const auto it = dq->dq->ids.qTag->find(label);
++pos;
}
-
if (!dq->tagsVect->empty()) {
*out = dq->tagsVect->data();
}
ffi.cdef[[
)FFICodeContent"
#include "dnsdist-lua-ffi-interface.inc"
-R"FFICodeContent(
+ R"FFICodeContent(
]]
)FFICodeContent";
if (valuesCount > 0) {
valuesVect.reserve(valuesCount);
for (size_t idx = 0; idx < valuesCount; idx++) {
- valuesVect.push_back({ std::string(values[idx].value, values[idx].size), values[idx].type });
+ valuesVect.push_back({std::string(values[idx].value, values[idx].size), values[idx].type});
}
}
if (valuesCount > 0) {
valuesVect.reserve(valuesCount);
for (size_t idx = 0; idx < valuesCount; idx++) {
- valuesVect.push_back({ std::string(values[idx].value, values[idx].size), values[idx].type });
+ valuesVect.push_back({std::string(values[idx].value, values[idx].size), values[idx].type});
}
}
dnsQuestion->dq->proxyProtocolValues->reserve(dnsQuestion->dq->proxyProtocolValues->size() + valuesCount);
for (size_t idx = 0; idx < valuesCount; idx++) {
// NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic): the Lua FFI API is a C API..
- dnsQuestion->dq->proxyProtocolValues->push_back({ std::string(values[idx].value, values[idx].size), values[idx].type });
+ dnsQuestion->dq->proxyProtocolValues->push_back({std::string(values[idx].value, values[idx].size), values[idx].type});
}
return true;
{
std::vector<std::string> d_domains;
};
-struct dnsdist_ffi_address_list_t {
+struct dnsdist_ffi_address_list_t
+{
std::vector<std::string> d_addresses;
};
delete list;
}
-template<typename T> static void addRingEntryToList(std::unique_ptr<dnsdist_ffi_ring_entry_list_t>& list, const struct timespec& now, const T& entry)
+template <typename T>
+static void addRingEntryToList(std::unique_ptr<dnsdist_ffi_ring_entry_list_t>& list, const struct timespec& now, const T& entry)
{
auto age = DiffTime(entry.when, now);
#include "dnsdist.hh"
-extern "C" {
+extern "C"
+{
#include "dnsdist-lua-ffi-interface.h"
}
#include "ext/luawrapper/include/LuaContext.hpp"
// dnsdist_ffi_dnsquestion_t is a lightuserdata
-template<>
-struct LuaContext::Pusher<dnsdist_ffi_dnsquestion_t*> {
- static const int minSize = 1;
- static const int maxSize = 1;
-
- static PushedObject push(lua_State* state, dnsdist_ffi_dnsquestion_t* ptr) noexcept {
- lua_pushlightuserdata(state, ptr);
- return PushedObject{state, 1};
- }
+template <>
+struct LuaContext::Pusher<dnsdist_ffi_dnsquestion_t*>
+{
+ static const int minSize = 1;
+ static const int maxSize = 1;
+
+ static PushedObject push(lua_State* state, dnsdist_ffi_dnsquestion_t* ptr) noexcept
+ {
+ lua_pushlightuserdata(state, ptr);
+ return PushedObject{state, 1};
+ }
};
struct dnsdist_ffi_dnsquestion_t
{
- dnsdist_ffi_dnsquestion_t(DNSQuestion* dq_): dq(dq_)
+ dnsdist_ffi_dnsquestion_t(DNSQuestion* dq_) :
+ dq(dq_)
{
}
};
// dnsdist_ffi_dnsresponse_t is a lightuserdata
-template<>
-struct LuaContext::Pusher<dnsdist_ffi_dnsresponse_t*> {
- static const int minSize = 1;
- static const int maxSize = 1;
-
- static PushedObject push(lua_State* state, dnsdist_ffi_dnsresponse_t* ptr) noexcept {
- lua_pushlightuserdata(state, ptr);
- return PushedObject{state, 1};
- }
+template <>
+struct LuaContext::Pusher<dnsdist_ffi_dnsresponse_t*>
+{
+ static const int minSize = 1;
+ static const int maxSize = 1;
+
+ static PushedObject push(lua_State* state, dnsdist_ffi_dnsresponse_t* ptr) noexcept
+ {
+ lua_pushlightuserdata(state, ptr);
+ return PushedObject{state, 1};
+ }
};
struct dnsdist_ffi_dnsresponse_t
{
- dnsdist_ffi_dnsresponse_t(DNSResponse* dr_): dr(dr_)
+ dnsdist_ffi_dnsresponse_t(DNSResponse* dr_) :
+ dr(dr_)
{
}
};
// dnsdist_ffi_server_t is a lightuserdata
-template<>
-struct LuaContext::Pusher<dnsdist_ffi_server_t*> {
- static const int minSize = 1;
- static const int maxSize = 1;
-
- static PushedObject push(lua_State* state, dnsdist_ffi_server_t* ptr) noexcept {
- lua_pushlightuserdata(state, ptr);
- return PushedObject{state, 1};
- }
+template <>
+struct LuaContext::Pusher<dnsdist_ffi_server_t*>
+{
+ static const int minSize = 1;
+ static const int maxSize = 1;
+
+ static PushedObject push(lua_State* state, dnsdist_ffi_server_t* ptr) noexcept
+ {
+ lua_pushlightuserdata(state, ptr);
+ return PushedObject{state, 1};
+ }
};
struct dnsdist_ffi_server_t
{
- dnsdist_ffi_server_t(const std::shared_ptr<DownstreamState>& server_): server(server_)
+ dnsdist_ffi_server_t(const std::shared_ptr<DownstreamState>& server_) :
+ server(server_)
{
}
};
// dnsdist_ffi_servers_list_t is a lightuserdata
-template<>
-struct LuaContext::Pusher<dnsdist_ffi_servers_list_t*> {
- static const int minSize = 1;
- static const int maxSize = 1;
-
- static PushedObject push(lua_State* state, dnsdist_ffi_servers_list_t* ptr) noexcept {
- lua_pushlightuserdata(state, ptr);
- return PushedObject{state, 1};
- }
+template <>
+struct LuaContext::Pusher<dnsdist_ffi_servers_list_t*>
+{
+ static const int minSize = 1;
+ static const int maxSize = 1;
+
+ static PushedObject push(lua_State* state, dnsdist_ffi_servers_list_t* ptr) noexcept
+ {
+ lua_pushlightuserdata(state, ptr);
+ return PushedObject{state, 1};
+ }
};
struct dnsdist_ffi_servers_list_t
{
- dnsdist_ffi_servers_list_t(const ServerPolicy::NumberedServerVector& servers_): servers(servers_)
+ dnsdist_ffi_servers_list_t(const ServerPolicy::NumberedServerVector& servers_) :
+ servers(servers_)
{
ffiServers.reserve(servers.size());
- for (const auto& server: servers) {
+ for (const auto& server : servers) {
ffiServers.push_back(dnsdist_ffi_server_t(server.second));
}
}
};
// dnsdist_ffi_network_message_t is a lightuserdata
-template<>
-struct LuaContext::Pusher<dnsdist_ffi_network_message_t*> {
- static const int minSize = 1;
- static const int maxSize = 1;
-
- static PushedObject push(lua_State* state, dnsdist_ffi_network_message_t* ptr) noexcept {
- lua_pushlightuserdata(state, ptr);
- return PushedObject{state, 1};
- }
+template <>
+struct LuaContext::Pusher<dnsdist_ffi_network_message_t*>
+{
+ static const int minSize = 1;
+ static const int maxSize = 1;
+
+ static PushedObject push(lua_State* state, dnsdist_ffi_network_message_t* ptr) noexcept
+ {
+ lua_pushlightuserdata(state, ptr);
+ return PushedObject{state, 1};
+ }
};
struct dnsdist_ffi_network_message_t
{
- dnsdist_ffi_network_message_t(const std::string& payload_ ,const std::string& from_, uint16_t endpointID_): payload(payload_), from(from_), endpointID(endpointID_)
+ dnsdist_ffi_network_message_t(const std::string& payload_, const std::string& from_, uint16_t endpointID_) :
+ payload(payload_), from(from_), endpointID(endpointID_)
{
}
const std::function<void(dnsdist::configuration::ImmutableConfiguration& config, uint64_t value)> mutator;
const size_t maximumValue{std::numeric_limits<uint64_t>::max()};
};
- static const std::vector<UnsignedIntegerImmutableConfigurationItems> unsignedIntegerImmutableConfigItems
- {
+ static const std::vector<UnsignedIntegerImmutableConfigurationItems> unsignedIntegerImmutableConfigItems{
{"setMaxTCPQueuedConnections", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_maxTCPQueuedConnections = newValue; }, std::numeric_limits<uint16_t>::max()},
- {"setMaxTCPClientThreads", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_maxTCPClientThreads = newValue; }, std::numeric_limits<uint16_t>::max()},
- {"setMaxTCPConnectionsPerClient", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_maxTCPConnectionsPerClient = newValue; }, std::numeric_limits<uint64_t>::max()},
- {"setTCPInternalPipeBufferSize", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_tcpInternalPipeBufferSize = newValue; }, std::numeric_limits<uint64_t>::max()},
- {"setMaxCachedTCPConnectionsPerDownstream", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingTCPMaxIdlePerBackend = newValue; }, std::numeric_limits<uint16_t>::max()},
- {"setTCPDownstreamCleanupInterval", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingTCPCleanupInterval = newValue; }, std::numeric_limits<uint32_t>::max()},
- {"setTCPDownstreamMaxIdleTime", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingTCPMaxIdleTime = newValue; }, std::numeric_limits<uint16_t>::max()},
+ {"setMaxTCPClientThreads", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_maxTCPClientThreads = newValue; }, std::numeric_limits<uint16_t>::max()},
+ {"setMaxTCPConnectionsPerClient", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_maxTCPConnectionsPerClient = newValue; }, std::numeric_limits<uint64_t>::max()},
+ {"setTCPInternalPipeBufferSize", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_tcpInternalPipeBufferSize = newValue; }, std::numeric_limits<uint64_t>::max()},
+ {"setMaxCachedTCPConnectionsPerDownstream", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingTCPMaxIdlePerBackend = newValue; }, std::numeric_limits<uint16_t>::max()},
+ {"setTCPDownstreamCleanupInterval", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingTCPCleanupInterval = newValue; }, std::numeric_limits<uint32_t>::max()},
+ {"setTCPDownstreamMaxIdleTime", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingTCPMaxIdleTime = newValue; }, std::numeric_limits<uint16_t>::max()},
#if defined(HAVE_DNS_OVER_HTTPS) && defined(HAVE_NGHTTP2)
- {"setOutgoingDoHWorkerThreads", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHWorkers = newValue; }, std::numeric_limits<uint16_t>::max()},
- {"setMaxIdleDoHConnectionsPerDownstream", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHMaxIdlePerBackend = newValue; }, std::numeric_limits<uint16_t>::max()},
- {"setDoHDownstreamCleanupInterval", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHCleanupInterval = newValue; }, std::numeric_limits<uint32_t>::max()},
- {"setDoHDownstreamMaxIdleTime", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHMaxIdleTime = newValue; }, std::numeric_limits<uint16_t>::max()},
+ {"setOutgoingDoHWorkerThreads", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHWorkers = newValue; }, std::numeric_limits<uint16_t>::max()},
+ {"setMaxIdleDoHConnectionsPerDownstream", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHMaxIdlePerBackend = newValue; }, std::numeric_limits<uint16_t>::max()},
+ {"setDoHDownstreamCleanupInterval", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHCleanupInterval = newValue; }, std::numeric_limits<uint32_t>::max()},
+ {"setDoHDownstreamMaxIdleTime", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_outgoingDoHMaxIdleTime = newValue; }, std::numeric_limits<uint16_t>::max()},
#endif /* HAVE_DNS_OVER_HTTPS && HAVE_NGHTTP2 */
- {"setMaxUDPOutstanding", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_maxUDPOutstanding = newValue; }, std::numeric_limits<uint16_t>::max()},
- {"setWHashedPertubation", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_hashPerturbation = newValue; }, std::numeric_limits<uint32_t>::max()},
+ {"setMaxUDPOutstanding", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_maxUDPOutstanding = newValue; }, std::numeric_limits<uint16_t>::max()},
+ {"setWHashedPertubation", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_hashPerturbation = newValue; }, std::numeric_limits<uint32_t>::max()},
#ifndef DISABLE_RECVMMSG
- {"setUDPMultipleMessagesVectorSize", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_udpVectorSize = newValue; }, std::numeric_limits<uint32_t>::max()},
+ {"setUDPMultipleMessagesVectorSize", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_udpVectorSize = newValue; }, std::numeric_limits<uint32_t>::max()},
#endif /* DISABLE_RECVMMSG */
- {"setUDPTimeout", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_udpTimeout = newValue; }, std::numeric_limits<uint8_t>::max()},
- {"setConsoleMaximumConcurrentConnections", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_consoleMaxConcurrentConnections = newValue; }, std::numeric_limits<uint32_t>::max()},
- {"setRingBuffersLockRetries", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_ringsNbLockTries = newValue; }, std::numeric_limits<uint64_t>::max()},
+ {"setUDPTimeout", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_udpTimeout = newValue; }, std::numeric_limits<uint8_t>::max()},
+ {"setConsoleMaximumConcurrentConnections", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_consoleMaxConcurrentConnections = newValue; }, std::numeric_limits<uint32_t>::max()},
+ {"setRingBuffersLockRetries", [](dnsdist::configuration::ImmutableConfiguration& config, uint64_t newValue) { config.d_ringsNbLockTries = newValue; }, std::numeric_limits<uint64_t>::max()},
};
struct DoubleImmutableConfigurationItems
});
luaCtx.writeFunction("getPoolServers", [](const string& pool) {
- //coverity[auto_causes_copy]
+ // coverity[auto_causes_copy]
const auto poolServers = getDownstreamCandidates(pool);
return *poolServers;
});
g_outputBuffer = "Crypto failed..\n";
}
#else
- g_outputBuffer = "Crypto not available.\n";
+ g_outputBuffer = "Crypto not available.\n";
#endif
});
// 1 2 3 4
ret << (fmt % "Name" % "Cache" % "ServerPolicy" % "Servers") << endl;
- //coverity[auto_causes_copy]
+ // coverity[auto_causes_copy]
const auto defaultPolicyName = dnsdist::configuration::getCurrentRuntimeConfiguration().d_lbPolicy->getName();
- //coverity[auto_causes_copy]
+ // coverity[auto_causes_copy]
const auto pools = dnsdist::configuration::getCurrentRuntimeConfiguration().d_pools;
for (const auto& entry : pools) {
const string& name = entry.first;
#ifdef HAVE_NGHTTP2
frontend->d_library = "nghttp2";
#else /* HAVE_NGHTTP2 */
- frontend->d_library = "h2o";
+ frontend->d_library = "h2o";
#endif /* HAVE_NGHTTP2 */
}
if (frontend->d_library == "h2o") {
// we _really_ need to set it again, as we just replaced the generic frontend by a new one
frontend->d_library = "h2o";
#else /* HAVE_LIBH2OEVLOOP */
- errlog("DOH bind %s is configured to use libh2o but the library is not available", addr);
- return;
+ errlog("DOH bind %s is configured to use libh2o but the library is not available", addr);
+ return;
#endif /* HAVE_LIBH2OEVLOOP */
}
else if (frontend->d_library == "nghttp2") {
#ifdef HAVE_LIBSSL
const std::string provider("openssl");
#else
- const std::string provider("gnutls");
+ const std::string provider("gnutls");
#endif
vinfolog("Loading default TLS provider '%s'", provider);
}
config.d_frontends.push_back(std::move(clientState));
});
#else /* HAVE_DNS_OVER_HTTPS */
- throw std::runtime_error("addDOHLocal() called but DNS over HTTPS support is not present!");
+ throw std::runtime_error("addDOHLocal() called but DNS over HTTPS support is not present!");
#endif /* HAVE_DNS_OVER_HTTPS */
});
config.d_frontends.push_back(std::move(clientState));
});
#else
- throw std::runtime_error("addDOH3Local() called but DNS over HTTP/3 support is not present!");
+ throw std::runtime_error("addDOH3Local() called but DNS over HTTP/3 support is not present!");
#endif
});
config.d_frontends.push_back(std::move(clientState));
});
#else
- throw std::runtime_error("addDOQLocal() called but DNS over QUIC support is not present!");
+ throw std::runtime_error("addDOQLocal() called but DNS over QUIC support is not present!");
#endif
});
throw;
}
#else
- g_outputBuffer = "DNS over QUIC support is not present!\n";
+ g_outputBuffer = "DNS over QUIC support is not present!\n";
#endif
});
throw;
}
#else
- g_outputBuffer = "DNS over HTTPS support is not present!\n";
+ g_outputBuffer = "DNS over HTTPS support is not present!\n";
#endif
});
throw;
}
#else
- g_outputBuffer = "DNS over HTTP3 support is not present!\n";
+ g_outputBuffer = "DNS over HTTP3 support is not present!\n";
#endif
});
throw;
}
#else
- g_outputBuffer = "DNS over HTTPS support is not present!\n";
+ g_outputBuffer = "DNS over HTTPS support is not present!\n";
#endif
});
#ifdef HAVE_LIBSSL
const std::string provider("openssl");
#else
- const std::string provider("gnutls");
+ const std::string provider("gnutls");
#endif
vinfolog("Loading default TLS provider '%s'", provider);
}
g_outputBuffer = "Error: " + string(e.what()) + "\n";
}
#else
- throw std::runtime_error("addTLSLocal() called but DNS over TLS support is not present!");
+ throw std::runtime_error("addTLSLocal() called but DNS over TLS support is not present!");
#endif
});
throw;
}
#else
- g_outputBuffer = "DNS over TLS support is not present!\n";
+ g_outputBuffer = "DNS over TLS support is not present!\n";
#endif
});