From: Remi Gacogne Date: Tue, 3 Jun 2025 10:41:16 +0000 (+0200) Subject: dnsdist: Remove generated files from git X-Git-Tag: dnsdist-2.0.0-beta1~39^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67b9c81b63845a0cd6f8693afc91790e2fd1d8d6;p=thirdparty%2Fpdns.git dnsdist: Remove generated files from git Signed-off-by: Remi Gacogne --- diff --git a/pdns/dnsdistdist/dnsdist-actions-factory-generated.cc b/pdns/dnsdistdist/dnsdist-actions-factory-generated.cc deleted file mode 100644 index 25f67fcac5..0000000000 --- a/pdns/dnsdistdist/dnsdist-actions-factory-generated.cc +++ /dev/null @@ -1,93 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -std::shared_ptr getAllowAction() -{ - return std::shared_ptr(new AllowAction()); -} -std::shared_ptr getDelayAction(uint32_t msec) -{ - return std::shared_ptr(new DelayAction(msec)); -} -std::shared_ptr getDropAction() -{ - return std::shared_ptr(new DropAction()); -} -std::shared_ptr getSetEDNSOptionAction(uint32_t code, const std::string& data) -{ - return std::shared_ptr(new SetEDNSOptionAction(code, data)); -} -std::shared_ptr getLogAction(const std::string& file_name, bool binary, bool append, bool buffered, bool verbose_only, bool include_timestamp) -{ - return std::shared_ptr(new LogAction(file_name, binary, append, buffered, verbose_only, include_timestamp)); -} -std::shared_ptr getLuaFFIPerThreadAction(const std::string& code) -{ - return std::shared_ptr(new LuaFFIPerThreadAction(code)); -} -std::shared_ptr getNoneAction() -{ - return std::shared_ptr(new NoneAction()); -} -std::shared_ptr getPoolAction(const std::string& pool_name, bool stop_processing) -{ - return std::shared_ptr(new PoolAction(pool_name, stop_processing)); -} -std::shared_ptr getQPSAction(uint32_t limit) -{ - return std::shared_ptr(new QPSAction(limit)); -} -std::shared_ptr getQPSPoolAction(uint32_t limit, const std::string& pool_name, bool stop_processing) -{ - return std::shared_ptr(new QPSPoolAction(limit, pool_name, stop_processing)); -} -std::shared_ptr getSetAdditionalProxyProtocolValueAction(uint8_t proxy_type, const std::string& value) -{ - return std::shared_ptr(new SetAdditionalProxyProtocolValueAction(proxy_type, value)); -} -std::shared_ptr getSetDisableECSAction() -{ - return std::shared_ptr(new SetDisableECSAction()); -} -std::shared_ptr getSetDisableValidationAction() -{ - return std::shared_ptr(new SetDisableValidationAction()); -} -std::shared_ptr getSetECSOverrideAction(bool override_existing) -{ - return std::shared_ptr(new SetECSOverrideAction(override_existing)); -} -std::shared_ptr getSetECSPrefixLengthAction(uint16_t ipv4, uint16_t ipv6) -{ - return std::shared_ptr(new SetECSPrefixLengthAction(ipv4, ipv6)); -} -std::shared_ptr getSetExtendedDNSErrorAction(uint16_t info_code, const std::string& extra_text) -{ - return std::shared_ptr(new SetExtendedDNSErrorAction(info_code, extra_text)); -} -std::shared_ptr getSetMacAddrAction(uint32_t code) -{ - return std::shared_ptr(new SetMacAddrAction(code)); -} -std::shared_ptr getSetNoRecurseAction() -{ - return std::shared_ptr(new SetNoRecurseAction()); -} -std::shared_ptr getSetSkipCacheAction() -{ - return std::shared_ptr(new SetSkipCacheAction()); -} -std::shared_ptr getSetTagAction(const std::string& tag, const std::string& value) -{ - return std::shared_ptr(new SetTagAction(tag, value)); -} -std::shared_ptr getSetTempFailureCacheTTLAction(uint32_t ttl) -{ - return std::shared_ptr(new SetTempFailureCacheTTLAction(ttl)); -} -std::shared_ptr getSNMPTrapAction(const std::string& reason) -{ - return std::shared_ptr(new SNMPTrapAction(reason)); -} -std::shared_ptr getTCAction() -{ - return std::shared_ptr(new TCAction()); -} diff --git a/pdns/dnsdistdist/dnsdist-actions-factory-generated.hh b/pdns/dnsdistdist/dnsdist-actions-factory-generated.hh deleted file mode 100644 index bf61dba4c5..0000000000 --- a/pdns/dnsdistdist/dnsdist-actions-factory-generated.hh +++ /dev/null @@ -1,24 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -std::shared_ptr getAllowAction(); -std::shared_ptr getDelayAction(uint32_t msec); -std::shared_ptr getDropAction(); -std::shared_ptr getSetEDNSOptionAction(uint32_t code, const std::string& data); -std::shared_ptr getLogAction(const std::string& file_name, bool binary, bool append, bool buffered, bool verbose_only, bool include_timestamp); -std::shared_ptr getLuaFFIPerThreadAction(const std::string& code); -std::shared_ptr getNoneAction(); -std::shared_ptr getPoolAction(const std::string& pool_name, bool stop_processing); -std::shared_ptr getQPSAction(uint32_t limit); -std::shared_ptr getQPSPoolAction(uint32_t limit, const std::string& pool_name, bool stop_processing); -std::shared_ptr getSetAdditionalProxyProtocolValueAction(uint8_t proxy_type, const std::string& value); -std::shared_ptr getSetDisableECSAction(); -std::shared_ptr getSetDisableValidationAction(); -std::shared_ptr getSetECSOverrideAction(bool override_existing); -std::shared_ptr getSetECSPrefixLengthAction(uint16_t ipv4, uint16_t ipv6); -std::shared_ptr getSetExtendedDNSErrorAction(uint16_t info_code, const std::string& extra_text); -std::shared_ptr getSetMacAddrAction(uint32_t code); -std::shared_ptr getSetNoRecurseAction(); -std::shared_ptr getSetSkipCacheAction(); -std::shared_ptr getSetTagAction(const std::string& tag, const std::string& value); -std::shared_ptr getSetTempFailureCacheTTLAction(uint32_t ttl); -std::shared_ptr getSNMPTrapAction(const std::string& reason); -std::shared_ptr getTCAction(); diff --git a/pdns/dnsdistdist/dnsdist-lua-actions-generated.cc b/pdns/dnsdistdist/dnsdist-lua-actions-generated.cc deleted file mode 100644 index 885a11c664..0000000000 --- a/pdns/dnsdistdist/dnsdist-lua-actions-generated.cc +++ /dev/null @@ -1,70 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -luaCtx.writeFunction("AllowAction", []() { - return dnsdist::actions::getAllowAction(); -}); -luaCtx.writeFunction("DelayAction", [](uint32_t msec) { - return dnsdist::actions::getDelayAction(msec); -}); -luaCtx.writeFunction("DropAction", []() { - return dnsdist::actions::getDropAction(); -}); -luaCtx.writeFunction("SetEDNSOptionAction", [](uint32_t code, std::string data) { - return dnsdist::actions::getSetEDNSOptionAction(code, data); -}); -luaCtx.writeFunction("LogAction", [](boost::optional file_name, boost::optional binary, boost::optional append, boost::optional buffered, boost::optional verbose_only, boost::optional include_timestamp) { - return dnsdist::actions::getLogAction(file_name ? *file_name : "", binary ? *binary : true, append ? *append : false, buffered ? *buffered : false, verbose_only ? *verbose_only : true, include_timestamp ? *include_timestamp : false); -}); -luaCtx.writeFunction("LuaFFIPerThreadAction", [](std::string code) { - return dnsdist::actions::getLuaFFIPerThreadAction(code); -}); -luaCtx.writeFunction("NoneAction", []() { - return dnsdist::actions::getNoneAction(); -}); -luaCtx.writeFunction("PoolAction", [](std::string pool_name, boost::optional stop_processing) { - return dnsdist::actions::getPoolAction(pool_name, stop_processing ? *stop_processing : true); -}); -luaCtx.writeFunction("QPSAction", [](uint32_t limit) { - return dnsdist::actions::getQPSAction(limit); -}); -luaCtx.writeFunction("QPSPoolAction", [](uint32_t limit, std::string pool_name, boost::optional stop_processing) { - return dnsdist::actions::getQPSPoolAction(limit, pool_name, stop_processing ? *stop_processing : true); -}); -luaCtx.writeFunction("SetAdditionalProxyProtocolValueAction", [](uint8_t proxy_type, std::string value) { - return dnsdist::actions::getSetAdditionalProxyProtocolValueAction(proxy_type, value); -}); -luaCtx.writeFunction("SetDisableECSAction", []() { - return dnsdist::actions::getSetDisableECSAction(); -}); -luaCtx.writeFunction("SetDisableValidationAction", []() { - return dnsdist::actions::getSetDisableValidationAction(); -}); -luaCtx.writeFunction("SetECSOverrideAction", [](bool override_existing) { - return dnsdist::actions::getSetECSOverrideAction(override_existing); -}); -luaCtx.writeFunction("SetECSPrefixLengthAction", [](uint16_t ipv4, uint16_t ipv6) { - return dnsdist::actions::getSetECSPrefixLengthAction(ipv4, ipv6); -}); -luaCtx.writeFunction("SetExtendedDNSErrorAction", [](uint16_t info_code, boost::optional extra_text) { - return dnsdist::actions::getSetExtendedDNSErrorAction(info_code, extra_text ? *extra_text : ""); -}); -luaCtx.writeFunction("SetMacAddrAction", [](uint32_t code) { - return dnsdist::actions::getSetMacAddrAction(code); -}); -luaCtx.writeFunction("SetNoRecurseAction", []() { - return dnsdist::actions::getSetNoRecurseAction(); -}); -luaCtx.writeFunction("SetSkipCacheAction", []() { - return dnsdist::actions::getSetSkipCacheAction(); -}); -luaCtx.writeFunction("SetTagAction", [](std::string tag, std::string value) { - return dnsdist::actions::getSetTagAction(tag, value); -}); -luaCtx.writeFunction("SetTempFailureCacheTTLAction", [](uint32_t ttl) { - return dnsdist::actions::getSetTempFailureCacheTTLAction(ttl); -}); -luaCtx.writeFunction("SNMPTrapAction", [](boost::optional reason) { - return dnsdist::actions::getSNMPTrapAction(reason ? *reason : ""); -}); -luaCtx.writeFunction("TCAction", []() { - return dnsdist::actions::getTCAction(); -}); diff --git a/pdns/dnsdistdist/dnsdist-lua-response-actions-generated.cc b/pdns/dnsdistdist/dnsdist-lua-response-actions-generated.cc deleted file mode 100644 index bf3938ba19..0000000000 --- a/pdns/dnsdistdist/dnsdist-lua-response-actions-generated.cc +++ /dev/null @@ -1,37 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -luaCtx.writeFunction("AllowResponseAction", []() { - return dnsdist::actions::getAllowResponseAction(); -}); -luaCtx.writeFunction("DelayResponseAction", [](uint32_t msec) { - return dnsdist::actions::getDelayResponseAction(msec); -}); -luaCtx.writeFunction("DropResponseAction", []() { - return dnsdist::actions::getDropResponseAction(); -}); -luaCtx.writeFunction("LogResponseAction", [](boost::optional file_name, boost::optional append, boost::optional buffered, boost::optional verbose_only, boost::optional include_timestamp) { - return dnsdist::actions::getLogResponseAction(file_name ? *file_name : "", append ? *append : false, buffered ? *buffered : false, verbose_only ? *verbose_only : true, include_timestamp ? *include_timestamp : false); -}); -luaCtx.writeFunction("LuaFFIPerThreadResponseAction", [](std::string code) { - return dnsdist::actions::getLuaFFIPerThreadResponseAction(code); -}); -luaCtx.writeFunction("SetEDNSOptionResponseAction", [](uint32_t code, std::string data) { - return dnsdist::actions::getSetEDNSOptionResponseAction(code, data); -}); -luaCtx.writeFunction("SetExtendedDNSErrorResponseAction", [](uint16_t info_code, boost::optional extra_text) { - return dnsdist::actions::getSetExtendedDNSErrorResponseAction(info_code, extra_text ? *extra_text : ""); -}); -luaCtx.writeFunction("SetReducedTTLResponseAction", [](uint8_t percentage) { - return dnsdist::actions::getSetReducedTTLResponseAction(percentage); -}); -luaCtx.writeFunction("SetSkipCacheResponseAction", []() { - return dnsdist::actions::getSetSkipCacheResponseAction(); -}); -luaCtx.writeFunction("SetTagResponseAction", [](std::string tag, std::string value) { - return dnsdist::actions::getSetTagResponseAction(tag, value); -}); -luaCtx.writeFunction("SNMPTrapResponseAction", [](boost::optional reason) { - return dnsdist::actions::getSNMPTrapResponseAction(reason ? *reason : ""); -}); -luaCtx.writeFunction("TCResponseAction", []() { - return dnsdist::actions::getTCResponseAction(); -}); diff --git a/pdns/dnsdistdist/dnsdist-lua-selectors-generated.cc b/pdns/dnsdistdist/dnsdist-lua-selectors-generated.cc deleted file mode 100644 index 74ae1ba44b..0000000000 --- a/pdns/dnsdistdist/dnsdist-lua-selectors-generated.cc +++ /dev/null @@ -1,88 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -luaCtx.writeFunction("AllRule", []() { - return std::shared_ptr(dnsdist::selectors::getAllSelector()); -}); -luaCtx.writeFunction("DNSSECRule", []() { - return std::shared_ptr(dnsdist::selectors::getDNSSECSelector()); -}); -luaCtx.writeFunction("DSTPortRule", [](uint16_t port) { - return std::shared_ptr(dnsdist::selectors::getDSTPortSelector(port)); -}); -luaCtx.writeFunction("EDNSOptionRule", [](uint16_t option_code) { - return std::shared_ptr(dnsdist::selectors::getEDNSOptionSelector(option_code)); -}); -luaCtx.writeFunction("EDNSVersionRule", [](uint8_t version) { - return std::shared_ptr(dnsdist::selectors::getEDNSVersionSelector(version)); -}); -luaCtx.writeFunction("ERCodeRule", [](uint64_t rcode) { - return std::shared_ptr(dnsdist::selectors::getERCodeSelector(rcode)); -}); -luaCtx.writeFunction("HTTPHeaderRule", [](std::string header, std::string expression) { - return std::shared_ptr(dnsdist::selectors::getHTTPHeaderSelector(header, expression)); -}); -luaCtx.writeFunction("HTTPPathRule", [](std::string path) { - return std::shared_ptr(dnsdist::selectors::getHTTPPathSelector(path)); -}); -luaCtx.writeFunction("HTTPPathRegexRule", [](std::string expression) { - return std::shared_ptr(dnsdist::selectors::getHTTPPathRegexSelector(expression)); -}); -luaCtx.writeFunction("LuaFFIPerThreadRule", [](std::string code) { - return std::shared_ptr(dnsdist::selectors::getLuaFFIPerThreadSelector(code)); -}); -luaCtx.writeFunction("MaxQPSRule", [](uint32_t qps, boost::optional burst) { - return std::shared_ptr(dnsdist::selectors::getMaxQPSSelector(qps, boostToStandardOptional(burst))); -}); -luaCtx.writeFunction("MaxQPSIPRule", [](uint32_t qps, boost::optional ipv4_mask, boost::optional ipv6_mask, boost::optional burst, boost::optional expiration, boost::optional cleanup_delay, boost::optional scan_fraction, boost::optional shards) { - return std::shared_ptr(dnsdist::selectors::getMaxQPSIPSelector(qps, boostToStandardOptional(ipv4_mask), boostToStandardOptional(ipv6_mask), boostToStandardOptional(burst), boostToStandardOptional(expiration), boostToStandardOptional(cleanup_delay), boostToStandardOptional(scan_fraction), boostToStandardOptional(shards))); -}); -luaCtx.writeFunction("OpcodeRule", [](uint8_t code) { - return std::shared_ptr(dnsdist::selectors::getOpcodeSelector(code)); -}); -luaCtx.writeFunction("PayloadSizeRule", [](std::string comparison, uint16_t size) { - return std::shared_ptr(dnsdist::selectors::getPayloadSizeSelector(comparison, size)); -}); -luaCtx.writeFunction("PoolAvailableRule", [](std::string pool) { - return std::shared_ptr(dnsdist::selectors::getPoolAvailableSelector(pool)); -}); -luaCtx.writeFunction("PoolOutstandingRule", [](std::string pool, uint64_t max_outstanding) { - return std::shared_ptr(dnsdist::selectors::getPoolOutstandingSelector(pool, max_outstanding)); -}); -luaCtx.writeFunction("ProbaRule", [](double probability) { - return std::shared_ptr(dnsdist::selectors::getProbaSelector(probability)); -}); -luaCtx.writeFunction("ProxyProtocolValueRule", [](uint8_t option_type, boost::optional option_value) { - return std::shared_ptr(dnsdist::selectors::getProxyProtocolValueSelector(option_type, boostToStandardOptional(option_value))); -}); -luaCtx.writeFunction("QNameLabelsCountRule", [](uint16_t min_labels_count, uint16_t max_labels_count) { - return std::shared_ptr(dnsdist::selectors::getQNameLabelsCountSelector(min_labels_count, max_labels_count)); -}); -luaCtx.writeFunction("QNameWireLengthRule", [](uint16_t min, uint16_t max) { - return std::shared_ptr(dnsdist::selectors::getQNameWireLengthSelector(min, max)); -}); -luaCtx.writeFunction("RCodeRule", [](uint64_t rcode) { - return std::shared_ptr(dnsdist::selectors::getRCodeSelector(rcode)); -}); -luaCtx.writeFunction("RDRule", []() { - return std::shared_ptr(dnsdist::selectors::getRDSelector()); -}); -luaCtx.writeFunction("RE2Rule", [](std::string expression) { - return std::shared_ptr(dnsdist::selectors::getRE2Selector(expression)); -}); -luaCtx.writeFunction("RecordsCountRule", [](uint8_t section, uint16_t minimum, uint16_t maximum) { - return std::shared_ptr(dnsdist::selectors::getRecordsCountSelector(section, minimum, maximum)); -}); -luaCtx.writeFunction("RecordsTypeCountRule", [](uint8_t section, uint16_t record_type, uint16_t minimum, uint16_t maximum) { - return std::shared_ptr(dnsdist::selectors::getRecordsTypeCountSelector(section, record_type, minimum, maximum)); -}); -luaCtx.writeFunction("RegexRule", [](std::string expression) { - return std::shared_ptr(dnsdist::selectors::getRegexSelector(expression)); -}); -luaCtx.writeFunction("SNIRule", [](std::string server_name) { - return std::shared_ptr(dnsdist::selectors::getSNISelector(server_name)); -}); -luaCtx.writeFunction("TCPRule", [](bool tcp) { - return std::shared_ptr(dnsdist::selectors::getTCPSelector(tcp)); -}); -luaCtx.writeFunction("TrailingDataRule", []() { - return std::shared_ptr(dnsdist::selectors::getTrailingDataSelector()); -}); diff --git a/pdns/dnsdistdist/dnsdist-response-actions-factory-generated.cc b/pdns/dnsdistdist/dnsdist-response-actions-factory-generated.cc deleted file mode 100644 index 8883e0375a..0000000000 --- a/pdns/dnsdistdist/dnsdist-response-actions-factory-generated.cc +++ /dev/null @@ -1,49 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -std::shared_ptr getAllowResponseAction() -{ - return std::shared_ptr(new AllowResponseAction()); -} -std::shared_ptr getDelayResponseAction(uint32_t msec) -{ - return std::shared_ptr(new DelayResponseAction(msec)); -} -std::shared_ptr getDropResponseAction() -{ - return std::shared_ptr(new DropResponseAction()); -} -std::shared_ptr getLogResponseAction(const std::string& file_name, bool append, bool buffered, bool verbose_only, bool include_timestamp) -{ - return std::shared_ptr(new LogResponseAction(file_name, append, buffered, verbose_only, include_timestamp)); -} -std::shared_ptr getLuaFFIPerThreadResponseAction(const std::string& code) -{ - return std::shared_ptr(new LuaFFIPerThreadResponseAction(code)); -} -std::shared_ptr getSetEDNSOptionResponseAction(uint32_t code, const std::string& data) -{ - return std::shared_ptr(new SetEDNSOptionResponseAction(code, data)); -} -std::shared_ptr getSetExtendedDNSErrorResponseAction(uint16_t info_code, const std::string& extra_text) -{ - return std::shared_ptr(new SetExtendedDNSErrorResponseAction(info_code, extra_text)); -} -std::shared_ptr getSetReducedTTLResponseAction(uint8_t percentage) -{ - return std::shared_ptr(new SetReducedTTLResponseAction(percentage)); -} -std::shared_ptr getSetSkipCacheResponseAction() -{ - return std::shared_ptr(new SetSkipCacheResponseAction()); -} -std::shared_ptr getSetTagResponseAction(const std::string& tag, const std::string& value) -{ - return std::shared_ptr(new SetTagResponseAction(tag, value)); -} -std::shared_ptr getSNMPTrapResponseAction(const std::string& reason) -{ - return std::shared_ptr(new SNMPTrapResponseAction(reason)); -} -std::shared_ptr getTCResponseAction() -{ - return std::shared_ptr(new TCResponseAction()); -} diff --git a/pdns/dnsdistdist/dnsdist-response-actions-factory-generated.hh b/pdns/dnsdistdist/dnsdist-response-actions-factory-generated.hh deleted file mode 100644 index 9fb2f73cda..0000000000 --- a/pdns/dnsdistdist/dnsdist-response-actions-factory-generated.hh +++ /dev/null @@ -1,13 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -std::shared_ptr getAllowResponseAction(); -std::shared_ptr getDelayResponseAction(uint32_t msec); -std::shared_ptr getDropResponseAction(); -std::shared_ptr getLogResponseAction(const std::string& file_name, bool append, bool buffered, bool verbose_only, bool include_timestamp); -std::shared_ptr getLuaFFIPerThreadResponseAction(const std::string& code); -std::shared_ptr getSetEDNSOptionResponseAction(uint32_t code, const std::string& data); -std::shared_ptr getSetExtendedDNSErrorResponseAction(uint16_t info_code, const std::string& extra_text); -std::shared_ptr getSetReducedTTLResponseAction(uint8_t percentage); -std::shared_ptr getSetSkipCacheResponseAction(); -std::shared_ptr getSetTagResponseAction(const std::string& tag, const std::string& value); -std::shared_ptr getSNMPTrapResponseAction(const std::string& reason); -std::shared_ptr getTCResponseAction(); diff --git a/pdns/dnsdistdist/dnsdist-rust-bridge-actions-generated.cc b/pdns/dnsdistdist/dnsdist-rust-bridge-actions-generated.cc deleted file mode 100644 index 4f0b953095..0000000000 --- a/pdns/dnsdistdist/dnsdist-rust-bridge-actions-generated.cc +++ /dev/null @@ -1,221 +0,0 @@ -// !! This file has been generated by dnsdist-settings-generator.py, do not edit by hand!! -std::shared_ptr getAllowAction(const AllowActionConfiguration& config) -{ - auto action = dnsdist::actions::getAllowAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getDelayAction(const DelayActionConfiguration& config) -{ - auto action = dnsdist::actions::getDelayAction(config.msec); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getDropAction(const DropActionConfiguration& config) -{ - auto action = dnsdist::actions::getDropAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetEDNSOptionAction(const SetEDNSOptionActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetEDNSOptionAction(config.code, std::string(config.data)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getERCodeAction(const ERCodeActionConfiguration& config) -{ - auto action = dnsdist::actions::getERCodeAction(config.rcode, convertResponseConfig(config.vars)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getHTTPStatusAction(const HTTPStatusActionConfiguration& config) -{ - auto action = dnsdist::actions::getHTTPStatusAction(config.status, PacketBuffer(config.body.data(), config.body.data() + config.body.size()), std::string(config.content_type), convertResponseConfig(config.vars)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getLogAction(const LogActionConfiguration& config) -{ - auto action = dnsdist::actions::getLogAction(std::string(config.file_name), config.binary, config.append, config.buffered, config.verbose_only, config.include_timestamp); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getLuaFFIPerThreadAction(const LuaFFIPerThreadActionConfiguration& config) -{ - auto action = dnsdist::actions::getLuaFFIPerThreadAction(std::string(config.code)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getNegativeAndSOAAction(const NegativeAndSOAActionConfiguration& config) -{ - auto action = dnsdist::actions::getNegativeAndSOAAction(config.nxd, DNSName(std::string(config.zone)), config.ttl, DNSName(std::string(config.mname)), DNSName(std::string(config.rname)), convertSOAParams(config.soa_parameters), config.soa_in_authority, convertResponseConfig(config.vars)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getNoneAction(const NoneActionConfiguration& config) -{ - auto action = dnsdist::actions::getNoneAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getPoolAction(const PoolActionConfiguration& config) -{ - auto action = dnsdist::actions::getPoolAction(std::string(config.pool_name), config.stop_processing); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getQPSAction(const QPSActionConfiguration& config) -{ - auto action = dnsdist::actions::getQPSAction(config.limit); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getQPSPoolAction(const QPSPoolActionConfiguration& config) -{ - auto action = dnsdist::actions::getQPSPoolAction(config.limit, std::string(config.pool_name), config.stop_processing); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getRCodeAction(const RCodeActionConfiguration& config) -{ - auto action = dnsdist::actions::getRCodeAction(config.rcode, convertResponseConfig(config.vars)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetAdditionalProxyProtocolValueAction(const SetAdditionalProxyProtocolValueActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetAdditionalProxyProtocolValueAction(config.proxy_type, std::string(config.value)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetDisableECSAction(const SetDisableECSActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetDisableECSAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetDisableValidationAction(const SetDisableValidationActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetDisableValidationAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetECSAction(const SetECSActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetECSAction(std::string(config.ipv4), std::string(config.ipv6)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetECSOverrideAction(const SetECSOverrideActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetECSOverrideAction(config.override_existing); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetECSPrefixLengthAction(const SetECSPrefixLengthActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetECSPrefixLengthAction(config.ipv4, config.ipv6); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetExtendedDNSErrorAction(const SetExtendedDNSErrorActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetExtendedDNSErrorAction(config.info_code, std::string(config.extra_text)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetMacAddrAction(const SetMacAddrActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetMacAddrAction(config.code); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetMaxReturnedTTLAction(const SetMaxReturnedTTLActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetMaxReturnedTTLAction(config.max); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetNoRecurseAction(const SetNoRecurseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetNoRecurseAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetSkipCacheAction(const SetSkipCacheActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetSkipCacheAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetTagAction(const SetTagActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetTagAction(std::string(config.tag), std::string(config.value)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetTempFailureCacheTTLAction(const SetTempFailureCacheTTLActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetTempFailureCacheTTLAction(config.ttl); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSNMPTrapAction(const SNMPTrapActionConfiguration& config) -{ - auto action = dnsdist::actions::getSNMPTrapAction(std::string(config.reason)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSpoofSVCAction(const SpoofSVCActionConfiguration& config) -{ - auto action = dnsdist::actions::getSpoofSVCAction(convertSVCRecordParameters(config.parameters), convertResponseConfig(config.vars)); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getTCAction(const TCActionConfiguration& config) -{ - auto action = dnsdist::actions::getTCAction(); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getTeeAction(const TeeActionConfiguration& config) -{ - auto action = dnsdist::actions::getTeeAction(ComboAddress(std::string(config.rca)), ComboAddress(std::string(config.lca)), config.add_ecs, config.add_proxy_protocol); - return newDNSActionWrapper(std::move(action), config.name); -} -std::shared_ptr getAllowResponseAction(const AllowResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getAllowResponseAction(); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getDelayResponseAction(const DelayResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getDelayResponseAction(config.msec); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getDropResponseAction(const DropResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getDropResponseAction(); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getLogResponseAction(const LogResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getLogResponseAction(std::string(config.file_name), config.append, config.buffered, config.verbose_only, config.include_timestamp); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getLuaFFIPerThreadResponseAction(const LuaFFIPerThreadResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getLuaFFIPerThreadResponseAction(std::string(config.code)); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetEDNSOptionResponseAction(const SetEDNSOptionResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetEDNSOptionResponseAction(config.code, std::string(config.data)); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetExtendedDNSErrorResponseAction(const SetExtendedDNSErrorResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetExtendedDNSErrorResponseAction(config.info_code, std::string(config.extra_text)); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetMaxReturnedTTLResponseAction(const SetMaxReturnedTTLResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetMaxReturnedTTLResponseAction(config.max); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetReducedTTLResponseAction(const SetReducedTTLResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetReducedTTLResponseAction(config.percentage); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetSkipCacheResponseAction(const SetSkipCacheResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetSkipCacheResponseAction(); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSetTagResponseAction(const SetTagResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSetTagResponseAction(std::string(config.tag), std::string(config.value)); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getSNMPTrapResponseAction(const SNMPTrapResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getSNMPTrapResponseAction(std::string(config.reason)); - return newDNSResponseActionWrapper(std::move(action), config.name); -} -std::shared_ptr getTCResponseAction(const TCResponseActionConfiguration& config) -{ - auto action = dnsdist::actions::getTCResponseAction(); - return newDNSResponseActionWrapper(std::move(action), config.name); -} diff --git a/pdns/dnsdistdist/dnsdist-rust-bridge-actions-generated.hh b/pdns/dnsdistdist/dnsdist-rust-bridge-actions-generated.hh deleted file mode 100644 index e3efd22a26..0000000000 --- a/pdns/dnsdistdist/dnsdist-rust-bridge-actions-generated.hh +++ /dev/null @@ -1,129 +0,0 @@ -// !! This file has been generated by dnsdist-settings-generator.py, do not edit by hand!! -struct AllowActionConfiguration; -std::shared_ptr getAllowAction(const AllowActionConfiguration& config); -struct ContinueActionConfiguration; -std::shared_ptr getContinueAction(const ContinueActionConfiguration& config); -struct DelayActionConfiguration; -std::shared_ptr getDelayAction(const DelayActionConfiguration& config); -struct DnstapLogActionConfiguration; -std::shared_ptr getDnstapLogAction(const DnstapLogActionConfiguration& config); -struct DropActionConfiguration; -std::shared_ptr getDropAction(const DropActionConfiguration& config); -struct SetEDNSOptionActionConfiguration; -std::shared_ptr getSetEDNSOptionAction(const SetEDNSOptionActionConfiguration& config); -struct ERCodeActionConfiguration; -std::shared_ptr getERCodeAction(const ERCodeActionConfiguration& config); -struct HTTPStatusActionConfiguration; -std::shared_ptr getHTTPStatusAction(const HTTPStatusActionConfiguration& config); -struct KeyValueStoreLookupActionConfiguration; -std::shared_ptr getKeyValueStoreLookupAction(const KeyValueStoreLookupActionConfiguration& config); -struct KeyValueStoreRangeLookupActionConfiguration; -std::shared_ptr getKeyValueStoreRangeLookupAction(const KeyValueStoreRangeLookupActionConfiguration& config); -struct LogActionConfiguration; -std::shared_ptr getLogAction(const LogActionConfiguration& config); -struct LuaActionConfiguration; -std::shared_ptr getLuaAction(const LuaActionConfiguration& config); -struct LuaFFIActionConfiguration; -std::shared_ptr getLuaFFIAction(const LuaFFIActionConfiguration& config); -struct LuaFFIPerThreadActionConfiguration; -std::shared_ptr getLuaFFIPerThreadAction(const LuaFFIPerThreadActionConfiguration& config); -struct NegativeAndSOAActionConfiguration; -std::shared_ptr getNegativeAndSOAAction(const NegativeAndSOAActionConfiguration& config); -struct NoneActionConfiguration; -std::shared_ptr getNoneAction(const NoneActionConfiguration& config); -struct PoolActionConfiguration; -std::shared_ptr getPoolAction(const PoolActionConfiguration& config); -struct QPSActionConfiguration; -std::shared_ptr getQPSAction(const QPSActionConfiguration& config); -struct QPSPoolActionConfiguration; -std::shared_ptr getQPSPoolAction(const QPSPoolActionConfiguration& config); -struct RCodeActionConfiguration; -std::shared_ptr getRCodeAction(const RCodeActionConfiguration& config); -struct RemoteLogActionConfiguration; -std::shared_ptr getRemoteLogAction(const RemoteLogActionConfiguration& config); -struct SetAdditionalProxyProtocolValueActionConfiguration; -std::shared_ptr getSetAdditionalProxyProtocolValueAction(const SetAdditionalProxyProtocolValueActionConfiguration& config); -struct SetDisableECSActionConfiguration; -std::shared_ptr getSetDisableECSAction(const SetDisableECSActionConfiguration& config); -struct SetDisableValidationActionConfiguration; -std::shared_ptr getSetDisableValidationAction(const SetDisableValidationActionConfiguration& config); -struct SetECSActionConfiguration; -std::shared_ptr getSetECSAction(const SetECSActionConfiguration& config); -struct SetECSOverrideActionConfiguration; -std::shared_ptr getSetECSOverrideAction(const SetECSOverrideActionConfiguration& config); -struct SetECSPrefixLengthActionConfiguration; -std::shared_ptr getSetECSPrefixLengthAction(const SetECSPrefixLengthActionConfiguration& config); -struct SetExtendedDNSErrorActionConfiguration; -std::shared_ptr getSetExtendedDNSErrorAction(const SetExtendedDNSErrorActionConfiguration& config); -struct SetMacAddrActionConfiguration; -std::shared_ptr getSetMacAddrAction(const SetMacAddrActionConfiguration& config); -struct SetMaxReturnedTTLActionConfiguration; -std::shared_ptr getSetMaxReturnedTTLAction(const SetMaxReturnedTTLActionConfiguration& config); -struct SetNoRecurseActionConfiguration; -std::shared_ptr getSetNoRecurseAction(const SetNoRecurseActionConfiguration& config); -struct SetProxyProtocolValuesActionConfiguration; -std::shared_ptr getSetProxyProtocolValuesAction(const SetProxyProtocolValuesActionConfiguration& config); -struct SetSkipCacheActionConfiguration; -std::shared_ptr getSetSkipCacheAction(const SetSkipCacheActionConfiguration& config); -struct SetTagActionConfiguration; -std::shared_ptr getSetTagAction(const SetTagActionConfiguration& config); -struct SetTempFailureCacheTTLActionConfiguration; -std::shared_ptr getSetTempFailureCacheTTLAction(const SetTempFailureCacheTTLActionConfiguration& config); -struct SNMPTrapActionConfiguration; -std::shared_ptr getSNMPTrapAction(const SNMPTrapActionConfiguration& config); -struct SpoofActionConfiguration; -std::shared_ptr getSpoofAction(const SpoofActionConfiguration& config); -struct SpoofCNAMEActionConfiguration; -std::shared_ptr getSpoofCNAMEAction(const SpoofCNAMEActionConfiguration& config); -struct SpoofPacketActionConfiguration; -std::shared_ptr getSpoofPacketAction(const SpoofPacketActionConfiguration& config); -struct SpoofRawActionConfiguration; -std::shared_ptr getSpoofRawAction(const SpoofRawActionConfiguration& config); -struct SpoofSVCActionConfiguration; -std::shared_ptr getSpoofSVCAction(const SpoofSVCActionConfiguration& config); -struct TCActionConfiguration; -std::shared_ptr getTCAction(const TCActionConfiguration& config); -struct TeeActionConfiguration; -std::shared_ptr getTeeAction(const TeeActionConfiguration& config); -struct AllowResponseActionConfiguration; -std::shared_ptr getAllowResponseAction(const AllowResponseActionConfiguration& config); -struct ClearRecordTypesResponseActionConfiguration; -std::shared_ptr getClearRecordTypesResponseAction(const ClearRecordTypesResponseActionConfiguration& config); -struct DelayResponseActionConfiguration; -std::shared_ptr getDelayResponseAction(const DelayResponseActionConfiguration& config); -struct DnstapLogResponseActionConfiguration; -std::shared_ptr getDnstapLogResponseAction(const DnstapLogResponseActionConfiguration& config); -struct DropResponseActionConfiguration; -std::shared_ptr getDropResponseAction(const DropResponseActionConfiguration& config); -struct LimitTTLResponseActionConfiguration; -std::shared_ptr getLimitTTLResponseAction(const LimitTTLResponseActionConfiguration& config); -struct LogResponseActionConfiguration; -std::shared_ptr getLogResponseAction(const LogResponseActionConfiguration& config); -struct LuaResponseActionConfiguration; -std::shared_ptr getLuaResponseAction(const LuaResponseActionConfiguration& config); -struct LuaFFIResponseActionConfiguration; -std::shared_ptr getLuaFFIResponseAction(const LuaFFIResponseActionConfiguration& config); -struct LuaFFIPerThreadResponseActionConfiguration; -std::shared_ptr getLuaFFIPerThreadResponseAction(const LuaFFIPerThreadResponseActionConfiguration& config); -struct RemoteLogResponseActionConfiguration; -std::shared_ptr getRemoteLogResponseAction(const RemoteLogResponseActionConfiguration& config); -struct SetEDNSOptionResponseActionConfiguration; -std::shared_ptr getSetEDNSOptionResponseAction(const SetEDNSOptionResponseActionConfiguration& config); -struct SetExtendedDNSErrorResponseActionConfiguration; -std::shared_ptr getSetExtendedDNSErrorResponseAction(const SetExtendedDNSErrorResponseActionConfiguration& config); -struct SetMaxReturnedTTLResponseActionConfiguration; -std::shared_ptr getSetMaxReturnedTTLResponseAction(const SetMaxReturnedTTLResponseActionConfiguration& config); -struct SetMaxTTLResponseActionConfiguration; -std::shared_ptr getSetMaxTTLResponseAction(const SetMaxTTLResponseActionConfiguration& config); -struct SetMinTTLResponseActionConfiguration; -std::shared_ptr getSetMinTTLResponseAction(const SetMinTTLResponseActionConfiguration& config); -struct SetReducedTTLResponseActionConfiguration; -std::shared_ptr getSetReducedTTLResponseAction(const SetReducedTTLResponseActionConfiguration& config); -struct SetSkipCacheResponseActionConfiguration; -std::shared_ptr getSetSkipCacheResponseAction(const SetSkipCacheResponseActionConfiguration& config); -struct SetTagResponseActionConfiguration; -std::shared_ptr getSetTagResponseAction(const SetTagResponseActionConfiguration& config); -struct SNMPTrapResponseActionConfiguration; -std::shared_ptr getSNMPTrapResponseAction(const SNMPTrapResponseActionConfiguration& config); -struct TCResponseActionConfiguration; -std::shared_ptr getTCResponseAction(const TCResponseActionConfiguration& config); diff --git a/pdns/dnsdistdist/dnsdist-rust-bridge-selectors-generated.cc b/pdns/dnsdistdist/dnsdist-rust-bridge-selectors-generated.cc deleted file mode 100644 index 1ff8aa5add..0000000000 --- a/pdns/dnsdistdist/dnsdist-rust-bridge-selectors-generated.cc +++ /dev/null @@ -1,161 +0,0 @@ -// !! This file has been generated by dnsdist-settings-generator.py, do not edit by hand!! -std::shared_ptr getAllSelector(const AllSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getAllSelector(); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getDNSSECSelector(const DNSSECSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getDNSSECSelector(); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getDSTPortSelector(const DSTPortSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getDSTPortSelector(config.port); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getEDNSOptionSelector(const EDNSOptionSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getEDNSOptionSelector(config.option_code); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getEDNSVersionSelector(const EDNSVersionSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getEDNSVersionSelector(config.version); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getERCodeSelector(const ERCodeSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getERCodeSelector(config.rcode); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getHTTPHeaderSelector(const HTTPHeaderSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getHTTPHeaderSelector(std::string(config.header), std::string(config.expression)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getHTTPPathSelector(const HTTPPathSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getHTTPPathSelector(std::string(config.path)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getHTTPPathRegexSelector(const HTTPPathRegexSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getHTTPPathRegexSelector(std::string(config.expression)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getLuaFFIPerThreadSelector(const LuaFFIPerThreadSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getLuaFFIPerThreadSelector(std::string(config.code)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getMaxQPSSelector(const MaxQPSSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getMaxQPSSelector(config.qps, config.burst); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getMaxQPSIPSelector(const MaxQPSIPSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getMaxQPSIPSelector(config.qps, config.ipv4_mask, config.ipv6_mask, config.burst, config.expiration, config.cleanup_delay, config.scan_fraction, config.shards); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getOpcodeSelector(const OpcodeSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getOpcodeSelector(config.code); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getPayloadSizeSelector(const PayloadSizeSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getPayloadSizeSelector(std::string(config.comparison), config.size); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getPoolAvailableSelector(const PoolAvailableSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getPoolAvailableSelector(std::string(config.pool)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getPoolOutstandingSelector(const PoolOutstandingSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getPoolOutstandingSelector(std::string(config.pool), config.max_outstanding); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getProbaSelector(const ProbaSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getProbaSelector(config.probability); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getProxyProtocolValueSelector(const ProxyProtocolValueSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getProxyProtocolValueSelector(config.option_type, std::string(config.option_value)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getQClassSelector(const QClassSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getQClassSelector(std::string(config.qclass), config.numeric_value); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getQNameLabelsCountSelector(const QNameLabelsCountSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getQNameLabelsCountSelector(config.min_labels_count, config.max_labels_count); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getQNameWireLengthSelector(const QNameWireLengthSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getQNameWireLengthSelector(config.min, config.max); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getQTypeSelector(const QTypeSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getQTypeSelector(std::string(config.qtype), config.numeric_value); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getRCodeSelector(const RCodeSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getRCodeSelector(config.rcode); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getRDSelector(const RDSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getRDSelector(); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getRE2Selector(const RE2SelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getRE2Selector(std::string(config.expression)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getRecordsCountSelector(const RecordsCountSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getRecordsCountSelector(config.section, config.minimum, config.maximum); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getRecordsTypeCountSelector(const RecordsTypeCountSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getRecordsTypeCountSelector(config.section, config.record_type, config.minimum, config.maximum); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getRegexSelector(const RegexSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getRegexSelector(std::string(config.expression)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getSNISelector(const SNISelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getSNISelector(std::string(config.server_name)); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getTagSelector(const TagSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getTagSelector(std::string(config.tag), std::string(config.value), config.empty_as_wildcard); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getTCPSelector(const TCPSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getTCPSelector(config.tcp); - return newDNSSelector(std::move(selector), config.name); -} -std::shared_ptr getTrailingDataSelector(const TrailingDataSelectorConfiguration& config) -{ - auto selector = dnsdist::selectors::getTrailingDataSelector(); - return newDNSSelector(std::move(selector), config.name); -} diff --git a/pdns/dnsdistdist/dnsdist-rust-bridge-selectors-generated.hh b/pdns/dnsdistdist/dnsdist-rust-bridge-selectors-generated.hh deleted file mode 100644 index 796c3480a8..0000000000 --- a/pdns/dnsdistdist/dnsdist-rust-bridge-selectors-generated.hh +++ /dev/null @@ -1,89 +0,0 @@ -// !! This file has been generated by dnsdist-settings-generator.py, do not edit by hand!! -struct AllSelectorConfiguration; -std::shared_ptr getAllSelector(const AllSelectorConfiguration& config); -struct AndSelectorConfiguration; -std::shared_ptr getAndSelector(const AndSelectorConfiguration& config); -struct ByNameSelectorConfiguration; -std::shared_ptr getByNameSelector(const ByNameSelectorConfiguration& config); -struct DNSSECSelectorConfiguration; -std::shared_ptr getDNSSECSelector(const DNSSECSelectorConfiguration& config); -struct DSTPortSelectorConfiguration; -std::shared_ptr getDSTPortSelector(const DSTPortSelectorConfiguration& config); -struct EDNSOptionSelectorConfiguration; -std::shared_ptr getEDNSOptionSelector(const EDNSOptionSelectorConfiguration& config); -struct EDNSVersionSelectorConfiguration; -std::shared_ptr getEDNSVersionSelector(const EDNSVersionSelectorConfiguration& config); -struct ERCodeSelectorConfiguration; -std::shared_ptr getERCodeSelector(const ERCodeSelectorConfiguration& config); -struct HTTPHeaderSelectorConfiguration; -std::shared_ptr getHTTPHeaderSelector(const HTTPHeaderSelectorConfiguration& config); -struct HTTPPathSelectorConfiguration; -std::shared_ptr getHTTPPathSelector(const HTTPPathSelectorConfiguration& config); -struct HTTPPathRegexSelectorConfiguration; -std::shared_ptr getHTTPPathRegexSelector(const HTTPPathRegexSelectorConfiguration& config); -struct KeyValueStoreLookupSelectorConfiguration; -std::shared_ptr getKeyValueStoreLookupSelector(const KeyValueStoreLookupSelectorConfiguration& config); -struct KeyValueStoreRangeLookupSelectorConfiguration; -std::shared_ptr getKeyValueStoreRangeLookupSelector(const KeyValueStoreRangeLookupSelectorConfiguration& config); -struct LuaSelectorConfiguration; -std::shared_ptr getLuaSelector(const LuaSelectorConfiguration& config); -struct LuaFFISelectorConfiguration; -std::shared_ptr getLuaFFISelector(const LuaFFISelectorConfiguration& config); -struct LuaFFIPerThreadSelectorConfiguration; -std::shared_ptr getLuaFFIPerThreadSelector(const LuaFFIPerThreadSelectorConfiguration& config); -struct MaxQPSSelectorConfiguration; -std::shared_ptr getMaxQPSSelector(const MaxQPSSelectorConfiguration& config); -struct MaxQPSIPSelectorConfiguration; -std::shared_ptr getMaxQPSIPSelector(const MaxQPSIPSelectorConfiguration& config); -struct NetmaskGroupSelectorConfiguration; -std::shared_ptr getNetmaskGroupSelector(const NetmaskGroupSelectorConfiguration& config); -struct NotSelectorConfiguration; -std::shared_ptr getNotSelector(const NotSelectorConfiguration& config); -struct OpcodeSelectorConfiguration; -std::shared_ptr getOpcodeSelector(const OpcodeSelectorConfiguration& config); -struct OrSelectorConfiguration; -std::shared_ptr getOrSelector(const OrSelectorConfiguration& config); -struct PayloadSizeSelectorConfiguration; -std::shared_ptr getPayloadSizeSelector(const PayloadSizeSelectorConfiguration& config); -struct PoolAvailableSelectorConfiguration; -std::shared_ptr getPoolAvailableSelector(const PoolAvailableSelectorConfiguration& config); -struct PoolOutstandingSelectorConfiguration; -std::shared_ptr getPoolOutstandingSelector(const PoolOutstandingSelectorConfiguration& config); -struct ProbaSelectorConfiguration; -std::shared_ptr getProbaSelector(const ProbaSelectorConfiguration& config); -struct ProxyProtocolValueSelectorConfiguration; -std::shared_ptr getProxyProtocolValueSelector(const ProxyProtocolValueSelectorConfiguration& config); -struct QClassSelectorConfiguration; -std::shared_ptr getQClassSelector(const QClassSelectorConfiguration& config); -struct QNameSelectorConfiguration; -std::shared_ptr getQNameSelector(const QNameSelectorConfiguration& config); -struct QNameLabelsCountSelectorConfiguration; -std::shared_ptr getQNameLabelsCountSelector(const QNameLabelsCountSelectorConfiguration& config); -struct QNameSetSelectorConfiguration; -std::shared_ptr getQNameSetSelector(const QNameSetSelectorConfiguration& config); -struct QNameSuffixSelectorConfiguration; -std::shared_ptr getQNameSuffixSelector(const QNameSuffixSelectorConfiguration& config); -struct QNameWireLengthSelectorConfiguration; -std::shared_ptr getQNameWireLengthSelector(const QNameWireLengthSelectorConfiguration& config); -struct QTypeSelectorConfiguration; -std::shared_ptr getQTypeSelector(const QTypeSelectorConfiguration& config); -struct RCodeSelectorConfiguration; -std::shared_ptr getRCodeSelector(const RCodeSelectorConfiguration& config); -struct RDSelectorConfiguration; -std::shared_ptr getRDSelector(const RDSelectorConfiguration& config); -struct RE2SelectorConfiguration; -std::shared_ptr getRE2Selector(const RE2SelectorConfiguration& config); -struct RecordsCountSelectorConfiguration; -std::shared_ptr getRecordsCountSelector(const RecordsCountSelectorConfiguration& config); -struct RecordsTypeCountSelectorConfiguration; -std::shared_ptr getRecordsTypeCountSelector(const RecordsTypeCountSelectorConfiguration& config); -struct RegexSelectorConfiguration; -std::shared_ptr getRegexSelector(const RegexSelectorConfiguration& config); -struct SNISelectorConfiguration; -std::shared_ptr getSNISelector(const SNISelectorConfiguration& config); -struct TagSelectorConfiguration; -std::shared_ptr getTagSelector(const TagSelectorConfiguration& config); -struct TCPSelectorConfiguration; -std::shared_ptr getTCPSelector(const TCPSelectorConfiguration& config); -struct TrailingDataSelectorConfiguration; -std::shared_ptr getTrailingDataSelector(const TrailingDataSelectorConfiguration& config); diff --git a/pdns/dnsdistdist/dnsdist-rust-lib/dnsdist-configuration-yaml-items-generated.cc b/pdns/dnsdistdist/dnsdist-rust-lib/dnsdist-configuration-yaml-items-generated.cc deleted file mode 100644 index 1c03496abc..0000000000 --- a/pdns/dnsdistdist/dnsdist-rust-lib/dnsdist-configuration-yaml-items-generated.cc +++ /dev/null @@ -1,256 +0,0 @@ -// !! This file has been generated by dnsdist-settings-generator.py, do not edit by hand!! -// START INCLUDE dnsdist-configuration-yaml-items-generated-pre-in.cc -/* - * This file is part of PowerDNS or dnsdist. - * Copyright -- PowerDNS.COM B.V. and its contributors - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * In addition, for the avoidance of any doubt, permission is granted to - * link this program with OpenSSL and to (re)distribute the binaries - * produced as the result of such linking. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "dnsdist-configuration.hh" -#include "dnsdist-configuration-yaml.hh" -// END INCLUDE dnsdist-configuration-yaml-items-generated-pre-in.cc -#if defined(HAVE_YAML_CONFIGURATION) -#include "rust/cxx.h" -#include "rust/lib.rs.h" -#include "dnsdist-configuration-yaml-internal.hh" - -namespace dnsdist::configuration::yaml -{ -void convertRuntimeFlatSettingsFromRust(const dnsdist::rust::settings::GlobalConfiguration& yamlConfig, dnsdist::configuration::RuntimeConfiguration& config) -{ - if (config.d_consoleOutputMsgMaxSize == 10000000) { - config.d_consoleOutputMsgMaxSize = yamlConfig.console.maximum_output_size; - } - if (config.d_logConsoleConnections == true) { - config.d_logConsoleConnections = yamlConfig.console.log_connections; - } - if (config.d_ecsOverride == false) { - config.d_ecsOverride = yamlConfig.edns_client_subnet.override_existing; - } - if (config.d_ECSSourcePrefixV4 == 32) { - config.d_ECSSourcePrefixV4 = yamlConfig.edns_client_subnet.source_prefix_v4; - } - if (config.d_ECSSourcePrefixV6 == 56) { - config.d_ECSSourcePrefixV6 = yamlConfig.edns_client_subnet.source_prefix_v6; - } - if (config.d_dynBlocksPurgeInterval == 60) { - config.d_dynBlocksPurgeInterval = yamlConfig.dynamic_rules_settings.purge_interval; - } - if (config.d_tcpRecvTimeout == 2) { - config.d_tcpRecvTimeout = yamlConfig.tuning.tcp.receive_timeout; - } - if (config.d_tcpSendTimeout == 2) { - config.d_tcpSendTimeout = yamlConfig.tuning.tcp.send_timeout; - } - if (config.d_maxTCPQueriesPerConn == 0) { - config.d_maxTCPQueriesPerConn = yamlConfig.tuning.tcp.max_queries_per_connection; - } - if (config.d_maxTCPConnectionDuration == 0) { - config.d_maxTCPConnectionDuration = yamlConfig.tuning.tcp.max_connection_duration; - } - if (config.d_tlsSessionCacheCleanupDelay == 60) { - config.d_tlsSessionCacheCleanupDelay = yamlConfig.tuning.tls.outgoing_tickets_cache_cleanup_delay; - } - if (config.d_tlsSessionCacheSessionValidity == 600) { - config.d_tlsSessionCacheSessionValidity = yamlConfig.tuning.tls.outgoing_tickets_cache_validity; - } - if (config.d_tlsSessionCacheMaxSessionsPerBackend == 20) { - config.d_tlsSessionCacheMaxSessionsPerBackend = yamlConfig.tuning.tls.max_outgoing_tickets_per_backend; - } - if (config.d_staleCacheEntriesTTL == 0) { - config.d_staleCacheEntriesTTL = yamlConfig.cache_settings.stale_entries_ttl; - } - if (config.d_cacheCleaningDelay == 60) { - config.d_cacheCleaningDelay = yamlConfig.cache_settings.cleaning_delay; - } - if (config.d_cacheCleaningPercentage == 100) { - config.d_cacheCleaningPercentage = yamlConfig.cache_settings.cleaning_percentage; - } - if (config.d_secPollInterval == 3600) { - config.d_secPollInterval = yamlConfig.security_polling.polling_interval; - } - if (config.d_secPollSuffix == "secpoll.powerdns.com.") { - config.d_secPollSuffix = std::string(yamlConfig.security_polling.suffix); - } - if (config.d_verbose == false) { - config.d_verbose = yamlConfig.logging.verbose; - } - if (config.d_verboseHealthChecks == false) { - config.d_verboseHealthChecks = yamlConfig.logging.verbose_health_checks; - } - if (config.d_payloadSizeSelfGenAnswers == 1232) { - config.d_payloadSizeSelfGenAnswers = yamlConfig.general.edns_udp_payload_size_self_generated_answers; - } - if (config.d_addEDNSToSelfGeneratedResponses == true) { - config.d_addEDNSToSelfGeneratedResponses = yamlConfig.general.add_edns_to_self_generated_answers; - } - if (config.d_truncateTC == false) { - config.d_truncateTC = yamlConfig.general.truncate_tc_answers; - } - if (config.d_fixupCase == false) { - config.d_fixupCase = yamlConfig.general.fixup_case; - } - if (config.d_allowEmptyResponse == false) { - config.d_allowEmptyResponse = yamlConfig.general.allow_empty_responses; - } - if (config.d_dropEmptyQueries == false) { - config.d_dropEmptyQueries = yamlConfig.general.drop_empty_queries; - } - if (config.d_proxyProtocolMaximumSize == 512) { - config.d_proxyProtocolMaximumSize = yamlConfig.proxy_protocol.maximum_payload_size; - } - if (config.d_applyACLToProxiedClients == false) { - config.d_applyACLToProxiedClients = yamlConfig.proxy_protocol.apply_acl_to_proxied_clients; - } - if (config.d_servFailOnNoPolicy == false) { - config.d_servFailOnNoPolicy = yamlConfig.load_balancing_policies.servfail_on_no_server; - } - if (config.d_roundrobinFailOnNoServer == false) { - config.d_roundrobinFailOnNoServer = yamlConfig.load_balancing_policies.round_robin_servfail_on_no_server; - } -} -void convertImmutableFlatSettingsFromRust(const dnsdist::rust::settings::GlobalConfiguration& yamlConfig, dnsdist::configuration::ImmutableConfiguration& config) -{ - if (config.d_consoleMaxConcurrentConnections == 0) { - config.d_consoleMaxConcurrentConnections = yamlConfig.console.max_concurrent_connections; - } - if (config.d_ringsCapacity == 10000) { - config.d_ringsCapacity = yamlConfig.ring_buffers.size; - } - if (config.d_ringsNumberOfShards == 10) { - config.d_ringsNumberOfShards = yamlConfig.ring_buffers.shards; - } - if (config.d_ringsNbLockTries == 5) { - config.d_ringsNbLockTries = yamlConfig.ring_buffers.lock_retries; - } - if (config.d_ringsRecordQueries == true) { - config.d_ringsRecordQueries = yamlConfig.ring_buffers.record_queries; - } - if (config.d_ringsRecordResponses == true) { - config.d_ringsRecordResponses = yamlConfig.ring_buffers.record_responses; - } - if (config.d_maxTCPClientThreads == 10) { - config.d_maxTCPClientThreads = yamlConfig.tuning.tcp.worker_threads; - } - if (config.d_maxTCPQueuedConnections == 10000) { - config.d_maxTCPQueuedConnections = yamlConfig.tuning.tcp.max_queued_connections; - } - if (config.d_tcpInternalPipeBufferSize == 1048576) { - config.d_tcpInternalPipeBufferSize = yamlConfig.tuning.tcp.internal_pipe_buffer_size; - } - if (config.d_outgoingTCPMaxIdleTime == 300) { - config.d_outgoingTCPMaxIdleTime = yamlConfig.tuning.tcp.outgoing_max_idle_time; - } - if (config.d_outgoingTCPCleanupInterval == 60) { - config.d_outgoingTCPCleanupInterval = yamlConfig.tuning.tcp.outgoing_cleanup_interval; - } - if (config.d_outgoingTCPMaxIdlePerBackend == 10) { - config.d_outgoingTCPMaxIdlePerBackend = yamlConfig.tuning.tcp.outgoing_max_idle_connection_per_backend; - } - if (config.d_maxTCPConnectionsPerClient == 0) { - config.d_maxTCPConnectionsPerClient = yamlConfig.tuning.tcp.max_connections_per_client; - } - if (config.d_tcpConnectionsOverloadThreshold == 90) { - config.d_tcpConnectionsOverloadThreshold = yamlConfig.tuning.tcp.connections_overload_threshold; - } - if (config.d_maxTCPConnectionsRatePerClient == 0) { - config.d_maxTCPConnectionsRatePerClient = yamlConfig.tuning.tcp.max_connection_rate_per_client; - } - if (config.d_tcpConnectionsRatePerClientInterval == 5) { - config.d_tcpConnectionsRatePerClientInterval = yamlConfig.tuning.tcp.connection_rate_interval; - } - if (config.d_maxTLSNewSessionsRatePerClient == 0) { - config.d_maxTLSNewSessionsRatePerClient = yamlConfig.tuning.tcp.max_tls_new_session_rate_per_client; - } - if (config.d_maxTLSResumedSessionsRatePerClient == 0) { - config.d_maxTLSResumedSessionsRatePerClient = yamlConfig.tuning.tcp.max_tls_resumed_session_rate_per_client; - } - if (config.d_maxTCPReadIOsPerQuery == 50) { - config.d_maxTCPReadIOsPerQuery = yamlConfig.tuning.tcp.max_read_ios_per_query; - } - if (config.d_tcpBanDurationForExceedingMaxReadIOsPerQuery == 60) { - config.d_tcpBanDurationForExceedingMaxReadIOsPerQuery = yamlConfig.tuning.tcp.ban_duration_for_exceeding_max_read_ios_per_query; - } - if (config.d_tcpBanDurationForExceedingTCPTLSRate == 10) { - config.d_tcpBanDurationForExceedingTCPTLSRate = yamlConfig.tuning.tcp.ban_duration_for_exceeding_tcp_tls_rate; - } - if (config.d_tcpConnectionsMaskV4 == 32) { - config.d_tcpConnectionsMaskV4 = yamlConfig.tuning.tcp.connections_mask_v4; - } - if (config.d_tcpConnectionsMaskV6 == 128) { - config.d_tcpConnectionsMaskV6 = yamlConfig.tuning.tcp.connections_mask_v6; - } - if (config.d_tcpConnectionsMaskV4Port == 0) { - config.d_tcpConnectionsMaskV4Port = yamlConfig.tuning.tcp.connections_mask_v4_port; - } - if (config.d_udpVectorSize == 1) { - config.d_udpVectorSize = yamlConfig.tuning.udp.messages_per_round; - } - if (config.d_socketUDPSendBuffer == 0) { - config.d_socketUDPSendBuffer = yamlConfig.tuning.udp.send_buffer_size; - } - if (config.d_socketUDPRecvBuffer == 0) { - config.d_socketUDPRecvBuffer = yamlConfig.tuning.udp.receive_buffer_size; - } - if (config.d_maxUDPOutstanding == 65535) { - config.d_maxUDPOutstanding = yamlConfig.tuning.udp.max_outstanding_per_backend; - } - if (config.d_udpTimeout == 2) { - config.d_udpTimeout = yamlConfig.tuning.udp.timeout; - } - if (config.d_randomizeUDPSocketsToBackend == false) { - config.d_randomizeUDPSocketsToBackend = yamlConfig.tuning.udp.randomize_outgoing_sockets_to_backend; - } - if (config.d_randomizeIDsToBackend == false) { - config.d_randomizeIDsToBackend = yamlConfig.tuning.udp.randomize_ids_to_backend; - } - if (config.d_outgoingDoHWorkers == 10) { - config.d_outgoingDoHWorkers = yamlConfig.tuning.doh.outgoing_worker_threads; - } - if (config.d_outgoingDoHMaxIdleTime == 300) { - config.d_outgoingDoHMaxIdleTime = yamlConfig.tuning.doh.outgoing_max_idle_time; - } - if (config.d_outgoingDoHCleanupInterval == 60) { - config.d_outgoingDoHCleanupInterval = yamlConfig.tuning.doh.outgoing_cleanup_interval; - } - if (config.d_outgoingDoHMaxIdlePerBackend == 10) { - config.d_outgoingDoHMaxIdlePerBackend = yamlConfig.tuning.doh.outgoing_max_idle_connection_per_backend; - } - if (config.d_snmpEnabled == false) { - config.d_snmpEnabled = yamlConfig.snmp.enabled; - } - if (config.d_snmpTrapsEnabled == false) { - config.d_snmpTrapsEnabled = yamlConfig.snmp.traps_enabled; - } - if (config.d_snmpDaemonSocketPath == "") { - config.d_snmpDaemonSocketPath = std::string(yamlConfig.snmp.daemon_socket); - } - if (config.d_weightedBalancingFactor == 0.0) { - config.d_weightedBalancingFactor = yamlConfig.load_balancing_policies.weighted_balancing_factor; - } - if (config.d_consistentHashBalancingFactor == 0.0) { - config.d_consistentHashBalancingFactor = yamlConfig.load_balancing_policies.consistent_hashing_balancing_factor; - } - if (config.d_hashPerturbation == 0) { - config.d_hashPerturbation = yamlConfig.load_balancing_policies.hash_perturbation; - } -} - -} -#endif /* defined(HAVE_YAML_CONFIGURATION) */ diff --git a/pdns/dnsdistdist/dnsdist-rust-lib/rust/src/lib.rs b/pdns/dnsdistdist/dnsdist-rust-lib/rust/src/lib.rs deleted file mode 100644 index 163f0e334e..0000000000 --- a/pdns/dnsdistdist/dnsdist-rust-lib/rust/src/lib.rs +++ /dev/null @@ -1,4585 +0,0 @@ -// !! This file has been generated by dnsdist-settings-generator.py, do not edit by hand!! -// START INCLUDE rust-pre-in.rs -use serde::{Deserialize, Serialize}; - -mod helpers; -use helpers::*; - -// Suppresses "Deserialize unused" warning -#[derive(Deserialize, Serialize)] -struct UnusedStruct {} - -#[derive(Debug)] -pub struct ValidationError { - msg: String, -} - -#[cxx::bridge(namespace = dnsdist::rust::settings)] -mod dnsdistsettings { - #[derive(Default, Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ResponseConfig { - #[serde(default, skip_serializing_if = "crate::is_default")] - set_aa: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - set_ad: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - set_ra: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - ttl: u32, - } - - #[derive(Default, Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SOAParams { - serial: u32, - refresh: u32, - retry: u32, - expire: u32, - minimum: u32, - } - - #[derive(Default, Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SVCRecordAdditionalParams { - #[serde(default, skip_serializing_if = "crate::is_default")] - key: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - value: String, - } - - #[derive(Default, Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SVCRecordParameters { - #[serde(default, skip_serializing_if = "crate::is_default")] - mandatory_params: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - alpns: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - ipv4_hints: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - ipv6_hints: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - additional_params: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - target: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - port: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - priority: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - no_default_alpn: bool, - } - - struct SharedDNSSelector { - selector: SharedPtr, - } - - struct SharedDNSAction { - action: SharedPtr, - } - - struct SharedDNSResponseAction { - action: SharedPtr, - } -// END INCLUDE rust-pre-in.rs - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct AllowActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Default)] - struct ContinueActionConfiguration { - name: String, - action: SharedDNSAction, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DelayActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - msec: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DnstapLogActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - identity: String, - logger_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DropActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetEDNSOptionActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - code: u32, - data: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ERCodeActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - rcode: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct HTTPStatusActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - status: u16, - body: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - content_type: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KeyValueStoreLookupActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - kvs_name: String, - lookup_key_name: String, - destination_tag: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KeyValueStoreRangeLookupActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - kvs_name: String, - lookup_key_name: String, - destination_tag: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LogActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - file_name: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - binary: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - append: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - buffered: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - verbose_only: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - include_timestamp: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaFFIActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaFFIPerThreadActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - code: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct NegativeAndSOAActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - nxd: bool, - zone: String, - ttl: u32, - mname: String, - rname: String, - soa_parameters: SOAParams, - #[serde(default, skip_serializing_if = "crate::is_default")] - soa_in_authority: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct NoneActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct PoolActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - pool_name: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - stop_processing: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QPSActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - limit: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QPSPoolActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - limit: u32, - pool_name: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - stop_processing: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RCodeActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - rcode: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RemoteLogActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - logger_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_file: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - server_id: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ip_encrypt_key: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - export_tags: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - metas: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetAdditionalProxyProtocolValueActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - proxy_type: u8, - value: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetDisableECSActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetDisableValidationActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetECSActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - ipv4: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ipv6: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetECSOverrideActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - override_existing: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetECSPrefixLengthActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - ipv4: u16, - ipv6: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetExtendedDNSErrorActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - info_code: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - extra_text: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetMacAddrActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - code: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetMaxReturnedTTLActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - max: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetNoRecurseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetProxyProtocolValuesActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - values: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetSkipCacheActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetTagActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - tag: String, - value: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetTempFailureCacheTTLActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - ttl: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SNMPTrapActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - reason: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SpoofActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - ips: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SpoofCNAMEActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - cname: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SpoofPacketActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - response: String, - len: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SpoofRawActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - answers: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - qtype_for_any: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SpoofSVCActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - parameters: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - vars: ResponseConfig, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TCActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TeeActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - rca: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - lca: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - add_ecs: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - add_proxy_protocol: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct AllowResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ClearRecordTypesResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - types: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DelayResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - msec: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DnstapLogResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - identity: String, - logger_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DropResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LimitTTLResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - min: u32, - max: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - types: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LogResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - file_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - append: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - buffered: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - verbose_only: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - include_timestamp: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaFFIResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaFFIPerThreadResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - code: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RemoteLogResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - logger_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - alter_function_file: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - server_id: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ip_encrypt_key: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - include_cname: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - export_tags: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - export_extended_errors_to_meta: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - metas: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetEDNSOptionResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - code: u32, - data: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetExtendedDNSErrorResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - info_code: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - extra_text: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetMaxReturnedTTLResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - max: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetMaxTTLResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - max: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetMinTTLResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - min: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetReducedTTLResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - percentage: u8, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetSkipCacheResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SetTagResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - tag: String, - value: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SNMPTrapResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - reason: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TCResponseActionConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct AllSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Default)] - struct AndSelectorConfiguration { - name: String, - selectors: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ByNameSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - selector_name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DNSSECSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DSTPortSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - port: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct EDNSOptionSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - option_code: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct EDNSVersionSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - version: u8, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ERCodeSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - rcode: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct HTTPHeaderSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - header: String, - expression: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct HTTPPathSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - path: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct HTTPPathRegexSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - expression: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KeyValueStoreLookupSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - kvs_name: String, - lookup_key_name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KeyValueStoreRangeLookupSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - kvs_name: String, - lookup_key_name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaFFISelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LuaFFIPerThreadSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - code: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct MaxQPSSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - qps: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - burst: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct MaxQPSIPSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - qps: u32, - #[serde(default = "crate::U8::<32>::value", skip_serializing_if = "crate::U8::<32>::is_equal")] - ipv4_mask: u8, - #[serde(default = "crate::U8::<64>::value", skip_serializing_if = "crate::U8::<64>::is_equal")] - ipv6_mask: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - burst: u32, - #[serde(default = "crate::U32::<300>::value", skip_serializing_if = "crate::U32::<300>::is_equal")] - expiration: u32, - #[serde(default = "crate::U32::<60>::value", skip_serializing_if = "crate::U32::<60>::is_equal")] - cleanup_delay: u32, - #[serde(default = "crate::U32::<10>::value", skip_serializing_if = "crate::U32::<10>::is_equal")] - scan_fraction: u32, - #[serde(default = "crate::U32::<10>::value", skip_serializing_if = "crate::U32::<10>::is_equal")] - shards: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct NetmaskGroupSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - netmask_group_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - netmasks: Vec, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - source: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - quiet: bool, - } - - #[derive(Default)] - struct NotSelectorConfiguration { - name: String, - selector: SharedDNSSelector, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct OpcodeSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - code: u8, - } - - #[derive(Default)] - struct OrSelectorConfiguration { - name: String, - selectors: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct PayloadSizeSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - comparison: String, - size: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct PoolAvailableSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - pool: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct PoolOutstandingSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - pool: String, - max_outstanding: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ProbaSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - probability: f64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ProxyProtocolValueSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - option_type: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - option_value: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QClassSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - qclass: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - numeric_value: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QNameSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - qname: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QNameLabelsCountSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - min_labels_count: u16, - max_labels_count: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QNameSetSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - qnames: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QNameSuffixSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - suffixes: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - quiet: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QNameWireLengthSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - min: u16, - max: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QTypeSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - qtype: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - numeric_value: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RCodeSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - rcode: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RDSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RE2SelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - expression: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RecordsCountSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - section: u8, - minimum: u16, - maximum: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RecordsTypeCountSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - section: u8, - record_type: u16, - minimum: u16, - maximum: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RegexSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - expression: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SNISelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - server_name: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TagSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - tag: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - value: String, - #[serde(rename = "empty-as-wildcard", default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - empty_as_wildcard: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TCPSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - tcp: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TrailingDataSelectorConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - } - - #[derive(Default)] - struct GlobalConfiguration { - acl: Vec, - backends: Vec, - binds: Vec, - cache_hit_response_rules: Vec, - cache_inserted_response_rules: Vec, - cache_miss_rules: Vec, - cache_settings: CacheSettingsConfiguration, - console: ConsoleConfiguration, - dynamic_rules: Vec, - dynamic_rules_settings: DynamicRulesSettingsConfiguration, - ebpf: EbpfConfiguration, - edns_client_subnet: EdnsClientSubnetConfiguration, - general: GeneralConfiguration, - key_value_stores: KeyValueStoresConfiguration, - load_balancing_policies: LoadBalancingPoliciesConfiguration, - logging: LoggingConfiguration, - metrics: MetricsConfiguration, - packet_caches: Vec, - pools: Vec, - proxy_protocol: ProxyProtocolConfiguration, - query_count: QueryCountConfiguration, - query_rules: Vec, - remote_logging: RemoteLoggingConfiguration, - response_rules: Vec, - ring_buffers: RingBuffersConfiguration, - security_polling: SecurityPollingConfiguration, - selectors: Vec, - self_answered_response_rules: Vec, - snmp: SnmpConfiguration, - tuning: TuningConfiguration, - webserver: WebserverConfiguration, - xfr_response_rules: Vec, - xsk: Vec, - timeout_response_rules: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct MetricsConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - carbon: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct CarbonConfiguration { - address: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default = "crate::U32::<30>::value", skip_serializing_if = "crate::U32::<30>::is_equal")] - interval: u32, - #[serde(rename = "namespace", default, skip_serializing_if = "crate::is_default")] - name_space: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - instance: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RemoteLoggingConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - protobuf_loggers: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - dnstap_loggers: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ProtobufLoggerConfiguration { - name: String, - address: String, - #[serde(default = "crate::U16::<2>::value", skip_serializing_if = "crate::U16::<2>::is_equal")] - timeout: u16, - #[serde(default = "crate::U64::<100>::value", skip_serializing_if = "crate::U64::<100>::is_equal")] - max_queued_entries: u64, - #[serde(default = "crate::U8::<1>::value", skip_serializing_if = "crate::U8::<1>::is_equal")] - reconnect_wait_time: u8, - #[serde(default = "crate::U64::<1>::value", skip_serializing_if = "crate::U64::<1>::is_equal")] - connection_count: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DnstapLoggerConfiguration { - name: String, - transport: String, - address: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - buffer_hint: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - flush_timeout: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - input_queue_size: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - output_queue_size: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - queue_notify_threshold: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - reopen_interval: u64, - #[serde(default = "crate::U64::<1>::value", skip_serializing_if = "crate::U64::<1>::is_equal")] - connection_count: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ProtoBufMetaConfiguration { - key: String, - value: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LmdbKvStoreConfiguration { - name: String, - file_name: String, - database_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - no_lock: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct CdbKvStoreConfiguration { - name: String, - file_name: String, - refresh_delay: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KvsLookupKeySourceIpConfiguration { - name: String, - #[serde(default = "crate::U8::<32>::value", skip_serializing_if = "crate::U8::<32>::is_equal")] - v4_mask: u8, - #[serde(default = "crate::U8::<128>::value", skip_serializing_if = "crate::U8::<128>::is_equal")] - v6_mask: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - include_port: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KvsLookupKeyQnameConfiguration { - name: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - wire_format: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KvsLookupKeySuffixConfiguration { - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - minimum_labels: u16, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - wire_format: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KvsLookupKeyTagConfiguration { - name: String, - tag: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KvsLookupKeysConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - source_ip_keys: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - qname_keys: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - suffix_keys: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - tag_keys: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct KeyValueStoresConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - lmdb: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - cdb: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - lookup_keys: KvsLookupKeysConfiguration, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct WebserverConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - listen_address: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - password: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - api_key: String, - #[serde(default = "crate::default_value_webserver_acl", skip_serializing_if = "crate::default_value_equal_webserver_acl")] - acl: Vec, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - api_requires_authentication: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - stats_require_authentication: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - dashboard_requires_authentication: bool, - #[serde(default = "crate::U32::<100>::value", skip_serializing_if = "crate::U32::<100>::is_equal")] - max_concurrent_connections: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - hash_plaintext_credentials: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - custom_headers: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - api_configuration_directory: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - api_read_write: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ConsoleConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - listen_address: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - key: String, - #[serde(default = "crate::default_value_console_acl", skip_serializing_if = "crate::default_value_equal_console_acl")] - acl: Vec, - #[serde(default = "crate::U32::<10000000>::value", skip_serializing_if = "crate::U32::<10000000>::is_equal")] - maximum_output_size: u32, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - log_connections: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_concurrent_connections: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct EbpfMapConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - max_entries: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - pinned_path: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct EbpfConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - ipv4: EbpfMapConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - ipv6: EbpfMapConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - cidr_ipv4: EbpfMapConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - cidr_ipv6: EbpfMapConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - qnames: EbpfMapConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - external: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct EdnsClientSubnetConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - override_existing: bool, - #[serde(default = "crate::U8::<32>::value", skip_serializing_if = "crate::U8::<32>::is_equal")] - source_prefix_v4: u8, - #[serde(default = "crate::U8::<56>::value", skip_serializing_if = "crate::U8::<56>::is_equal")] - source_prefix_v6: u8, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DynamicRulesSettingsConfiguration { - #[serde(default = "crate::U64::<60>::value", skip_serializing_if = "crate::U64::<60>::is_equal")] - purge_interval: u64, - #[serde(default = "crate::default_value_dynamic_rules_settings_default_action", skip_serializing_if = "crate::default_value_equal_dynamic_rules_settings_default_action")] - default_action: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DynamicRuleConfiguration { - #[serde(rename = "type", )] - rule_type: String, - seconds: u32, - action_duration: u32, - comment: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - rate: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - ratio: f64, - #[serde(default = "crate::default_value_dynamic_rule_action", skip_serializing_if = "crate::default_value_equal_dynamic_rule_action")] - action: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - warning_rate: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - warning_ratio: f64, - #[serde(default, skip_serializing_if = "crate::is_default")] - tag_name: String, - #[serde(default = "crate::default_value_dynamic_rule_tag_value", skip_serializing_if = "crate::default_value_equal_dynamic_rule_tag_value")] - tag_value: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - visitor_function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - visitor_function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - visitor_function_file: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - rcode: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - qtype: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - minimum_number_of_responses: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - minimum_global_cache_hit_ratio: f64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DynamicRulesConfiguration { - name: String, - #[serde(default = "crate::U8::<32>::value", skip_serializing_if = "crate::U8::<32>::is_equal")] - mask_ipv4: u8, - #[serde(default = "crate::U8::<64>::value", skip_serializing_if = "crate::U8::<64>::is_equal")] - mask_ipv6: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - mask_port: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - exclude_ranges: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - include_ranges: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - exclude_domains: Vec, - rules: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct RingBuffersConfiguration { - #[serde(default = "crate::U64::<10000>::value", skip_serializing_if = "crate::U64::<10000>::is_equal")] - size: u64, - #[serde(default = "crate::U64::<10>::value", skip_serializing_if = "crate::U64::<10>::is_equal")] - shards: u64, - #[serde(default = "crate::U64::<5>::value", skip_serializing_if = "crate::U64::<5>::is_equal")] - lock_retries: u64, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - record_queries: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - record_responses: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingTlsCertificateKeyPairConfiguration { - certificate: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - key: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - password: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingTlsConfiguration { - #[serde(default = "crate::default_value_incoming_tls_provider", skip_serializing_if = "crate::default_value_equal_incoming_tls_provider")] - provider: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - certificates: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - ciphers: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ciphers_tls_13: String, - #[serde(default = "crate::default_value_incoming_tls_minimum_version", skip_serializing_if = "crate::default_value_equal_incoming_tls_minimum_version")] - minimum_version: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ticket_key_file: String, - #[serde(default = "crate::U32::<43200>::value", skip_serializing_if = "crate::U32::<43200>::is_equal")] - tickets_keys_rotation_delay: u32, - #[serde(default = "crate::U32::<5>::value", skip_serializing_if = "crate::U32::<5>::is_equal")] - number_of_tickets_keys: u32, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - prefer_server_ciphers: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - session_timeout: u32, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - session_tickets: bool, - #[serde(default = "crate::U32::<20480>::value", skip_serializing_if = "crate::U32::<20480>::is_equal")] - number_of_stored_sessions: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - ocsp_response_files: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - key_log_file: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - release_buffers: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - enable_renegotiation: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - async_mode: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - ktls: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - read_ahead: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - proxy_protocol_outside_tls: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - ignore_configuration_errors: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct OutgoingTlsConfiguration { - #[serde(default = "crate::default_value_outgoing_tls_provider", skip_serializing_if = "crate::default_value_equal_outgoing_tls_provider")] - provider: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - subject_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - subject_address: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - validate_certificate: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - ca_store: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ciphers: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ciphers_tls_13: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - key_log_file: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - release_buffers: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - enable_renegotiation: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - ktls: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct HttpCustomResponseHeaderConfiguration { - key: String, - value: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct HttpResponsesMapConfiguration { - expression: String, - status: u16, - content: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - headers: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingDohConfiguration { - #[serde(default = "crate::default_value_incoming_doh_provider", skip_serializing_if = "crate::default_value_equal_incoming_doh_provider")] - provider: String, - #[serde(default = "crate::default_value_incoming_doh_paths", skip_serializing_if = "crate::default_value_equal_incoming_doh_paths")] - paths: Vec, - #[serde(default = "crate::U64::<30>::value", skip_serializing_if = "crate::U64::<30>::is_equal")] - idle_timeout: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - server_tokens: String, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - send_cache_control_headers: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - keep_incoming_headers: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - trust_forwarded_for_header: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - early_acl_drop: bool, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - exact_path_matching: bool, - #[serde(default = "crate::U32::<1048576>::value", skip_serializing_if = "crate::U32::<1048576>::is_equal")] - internal_pipe_buffer_size: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - custom_response_headers: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - responses_map: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingDoqConfiguration { - #[serde(default = "crate::U64::<65535>::value", skip_serializing_if = "crate::U64::<65535>::is_equal")] - max_concurrent_queries_per_connection: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingQuicConfiguration { - #[serde(default = "crate::U64::<5>::value", skip_serializing_if = "crate::U64::<5>::is_equal")] - idle_timeout: u64, - #[serde(default = "crate::default_value_incoming_quic_congestion_control_algorithm", skip_serializing_if = "crate::default_value_equal_incoming_quic_congestion_control_algorithm")] - congestion_control_algorithm: String, - #[serde(default = "crate::U32::<1048576>::value", skip_serializing_if = "crate::U32::<1048576>::is_equal")] - internal_pipe_buffer_size: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingDnscryptCertificateKeyPairConfiguration { - certificate: String, - key: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingDnscryptConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - provider_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - certificates: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct OutgoingDohConfiguration { - #[serde(default = "crate::default_value_outgoing_doh_path", skip_serializing_if = "crate::default_value_equal_outgoing_doh_path")] - path: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - add_x_forwarded_headers: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct IncomingTcpConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - max_in_flight_queries: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - listen_queue_size: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - fast_open_queue_size: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_concurrent_connections: u32, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct BindConfiguration { - listen_address: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - reuseport: bool, - #[serde(default = "crate::default_value_bind_protocol", skip_serializing_if = "crate::default_value_equal_bind_protocol")] - protocol: String, - #[serde(default = "crate::U32::<1>::value", skip_serializing_if = "crate::U32::<1>::is_equal")] - threads: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - interface: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - cpus: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - enable_proxy_protocol: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - tcp: IncomingTcpConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - tls: IncomingTlsConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - doh: IncomingDohConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - doq: IncomingDoqConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - quic: IncomingQuicConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - dnscrypt: IncomingDnscryptConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - additional_addresses: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - xsk: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct OutgoingTcpConfiguration { - #[serde(default = "crate::U16::<5>::value", skip_serializing_if = "crate::U16::<5>::is_equal")] - retries: u16, - #[serde(default = "crate::U16::<5>::value", skip_serializing_if = "crate::U16::<5>::is_equal")] - connect_timeout: u16, - #[serde(default = "crate::U16::<30>::value", skip_serializing_if = "crate::U16::<30>::is_equal")] - send_timeout: u16, - #[serde(default = "crate::U16::<30>::value", skip_serializing_if = "crate::U16::<30>::is_equal")] - receive_timeout: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - fast_open: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ProxyProtocolValueConfiguration { - key: u8, - value: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LazyHealthCheckConfiguration { - #[serde(default = "crate::U16::<30>::value", skip_serializing_if = "crate::U16::<30>::is_equal")] - interval: u16, - #[serde(default = "crate::U16::<1>::value", skip_serializing_if = "crate::U16::<1>::is_equal")] - min_sample_count: u16, - #[serde(default = "crate::default_value_lazy_health_check_mode", skip_serializing_if = "crate::default_value_equal_lazy_health_check_mode")] - mode: String, - #[serde(default = "crate::U16::<100>::value", skip_serializing_if = "crate::U16::<100>::is_equal")] - sample_size: u16, - #[serde(default = "crate::U16::<20>::value", skip_serializing_if = "crate::U16::<20>::is_equal")] - threshold: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - use_exponential_back_off: bool, - #[serde(default = "crate::U16::<3600>::value", skip_serializing_if = "crate::U16::<3600>::is_equal")] - max_back_off: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct HealthCheckConfiguration { - #[serde(default = "crate::default_value_health_check_mode", skip_serializing_if = "crate::default_value_equal_health_check_mode")] - mode: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - qname: String, - #[serde(default = "crate::default_value_health_check_qclass", skip_serializing_if = "crate::default_value_equal_health_check_qclass")] - qclass: String, - #[serde(default = "crate::default_value_health_check_qtype", skip_serializing_if = "crate::default_value_equal_health_check_qtype")] - qtype: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - lua: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - lua_file: String, - #[serde(default = "crate::U16::<1000>::value", skip_serializing_if = "crate::U16::<1000>::is_equal")] - timeout: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - set_cd: bool, - #[serde(default = "crate::U8::<1>::value", skip_serializing_if = "crate::U8::<1>::is_equal")] - max_failures: u8, - #[serde(default = "crate::U8::<1>::value", skip_serializing_if = "crate::U8::<1>::is_equal")] - rise: u8, - #[serde(default = "crate::U32::<1>::value", skip_serializing_if = "crate::U32::<1>::is_equal")] - interval: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - must_resolve: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - use_tcp: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - lazy: LazyHealthCheckConfiguration, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct OutgoingAutoUpgradeConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - enabled: bool, - #[serde(default = "crate::U32::<3600>::value", skip_serializing_if = "crate::U32::<3600>::is_equal")] - interval: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - keep: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - pool: String, - #[serde(default = "crate::U8::<7>::value", skip_serializing_if = "crate::U8::<7>::is_equal")] - doh_key: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - use_lazy_health_check: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct BackendConfiguration { - address: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - id: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - protocol: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - tls: OutgoingTlsConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - doh: OutgoingDohConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - use_client_subnet: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - use_proxy_protocol: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - queries_per_second: u32, - #[serde(default = "crate::U32::<1>::value", skip_serializing_if = "crate::U32::<1>::is_equal")] - order: u32, - #[serde(default = "crate::U32::<1>::value", skip_serializing_if = "crate::U32::<1>::is_equal")] - weight: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - udp_timeout: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - pools: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - tcp: OutgoingTcpConfiguration, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - ip_bind_addr_no_port: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - health_checks: HealthCheckConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - source: String, - #[serde(default = "crate::U32::<1>::value", skip_serializing_if = "crate::U32::<1>::is_equal")] - sockets: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - disable_zero_scope: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - reconnect_on_up: bool, - #[serde(default = "crate::U32::<1>::value", skip_serializing_if = "crate::U32::<1>::is_equal")] - max_in_flight: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - tcp_only: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - auto_upgrade: OutgoingAutoUpgradeConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_concurrent_tcp_connections: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - proxy_protocol_advertise_tls: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - mac_address: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - cpus: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - xsk: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - dscp: u8, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TuningConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - doh: DohTuningConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - tcp: TcpTuningConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - tls: TlsTuningConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - udp: UdpTuningConfiguration, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TcpTuningConfiguration { - #[serde(default = "crate::U32::<10>::value", skip_serializing_if = "crate::U32::<10>::is_equal")] - worker_threads: u32, - #[serde(default = "crate::U32::<2>::value", skip_serializing_if = "crate::U32::<2>::is_equal")] - receive_timeout: u32, - #[serde(default = "crate::U32::<2>::value", skip_serializing_if = "crate::U32::<2>::is_equal")] - send_timeout: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_queries_per_connection: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_connection_duration: u64, - #[serde(default = "crate::U64::<10000>::value", skip_serializing_if = "crate::U64::<10000>::is_equal")] - max_queued_connections: u64, - #[serde(default = "crate::U32::<1048576>::value", skip_serializing_if = "crate::U32::<1048576>::is_equal")] - internal_pipe_buffer_size: u32, - #[serde(default = "crate::U64::<300>::value", skip_serializing_if = "crate::U64::<300>::is_equal")] - outgoing_max_idle_time: u64, - #[serde(default = "crate::U64::<60>::value", skip_serializing_if = "crate::U64::<60>::is_equal")] - outgoing_cleanup_interval: u64, - #[serde(default = "crate::U64::<10>::value", skip_serializing_if = "crate::U64::<10>::is_equal")] - outgoing_max_idle_connection_per_backend: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_connections_per_client: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - fast_open_key: String, - #[serde(default = "crate::U8::<90>::value", skip_serializing_if = "crate::U8::<90>::is_equal")] - connections_overload_threshold: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_connection_rate_per_client: u64, - #[serde(default = "crate::U64::<5>::value", skip_serializing_if = "crate::U64::<5>::is_equal")] - connection_rate_interval: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_tls_new_session_rate_per_client: u64, - #[serde(default, skip_serializing_if = "crate::is_default")] - max_tls_resumed_session_rate_per_client: u64, - #[serde(default = "crate::U32::<50>::value", skip_serializing_if = "crate::U32::<50>::is_equal")] - max_read_ios_per_query: u32, - #[serde(default = "crate::U32::<60>::value", skip_serializing_if = "crate::U32::<60>::is_equal")] - ban_duration_for_exceeding_max_read_ios_per_query: u32, - #[serde(default = "crate::U32::<10>::value", skip_serializing_if = "crate::U32::<10>::is_equal")] - ban_duration_for_exceeding_tcp_tls_rate: u32, - #[serde(default = "crate::U8::<32>::value", skip_serializing_if = "crate::U8::<32>::is_equal")] - connections_mask_v4: u8, - #[serde(default = "crate::U8::<128>::value", skip_serializing_if = "crate::U8::<128>::is_equal")] - connections_mask_v6: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - connections_mask_v4_port: u8, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct UdpTuningConfiguration { - #[serde(default = "crate::U32::<1>::value", skip_serializing_if = "crate::U32::<1>::is_equal")] - messages_per_round: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - send_buffer_size: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - receive_buffer_size: u32, - #[serde(default = "crate::U32::<65535>::value", skip_serializing_if = "crate::U32::<65535>::is_equal")] - max_outstanding_per_backend: u32, - #[serde(default = "crate::U8::<2>::value", skip_serializing_if = "crate::U8::<2>::is_equal")] - timeout: u8, - #[serde(default, skip_serializing_if = "crate::is_default")] - randomize_outgoing_sockets_to_backend: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - randomize_ids_to_backend: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TlsEngineConfiguration { - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - default_string: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct TlsTuningConfiguration { - #[serde(default = "crate::U16::<60>::value", skip_serializing_if = "crate::U16::<60>::is_equal")] - outgoing_tickets_cache_cleanup_delay: u16, - #[serde(default = "crate::U16::<600>::value", skip_serializing_if = "crate::U16::<600>::is_equal")] - outgoing_tickets_cache_validity: u16, - #[serde(default = "crate::U16::<20>::value", skip_serializing_if = "crate::U16::<20>::is_equal")] - max_outgoing_tickets_per_backend: u16, - #[serde(default, skip_serializing_if = "crate::is_default")] - providers: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - engines: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct DohTuningConfiguration { - #[serde(default = "crate::U32::<10>::value", skip_serializing_if = "crate::U32::<10>::is_equal")] - outgoing_worker_threads: u32, - #[serde(default = "crate::U64::<300>::value", skip_serializing_if = "crate::U64::<300>::is_equal")] - outgoing_max_idle_time: u64, - #[serde(default = "crate::U64::<60>::value", skip_serializing_if = "crate::U64::<60>::is_equal")] - outgoing_cleanup_interval: u64, - #[serde(default = "crate::U64::<10>::value", skip_serializing_if = "crate::U64::<10>::is_equal")] - outgoing_max_idle_connection_per_backend: u64, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct CacheSettingsConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - stale_entries_ttl: u32, - #[serde(default = "crate::U16::<60>::value", skip_serializing_if = "crate::U16::<60>::is_equal")] - cleaning_delay: u16, - #[serde(default = "crate::U16::<100>::value", skip_serializing_if = "crate::U16::<100>::is_equal")] - cleaning_percentage: u16, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SecurityPollingConfiguration { - #[serde(default = "crate::U32::<3600>::value", skip_serializing_if = "crate::U32::<3600>::is_equal")] - polling_interval: u32, - #[serde(default = "crate::default_value_security_polling_suffix", skip_serializing_if = "crate::default_value_equal_security_polling_suffix")] - suffix: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct StructuredLoggingConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - enabled: bool, - #[serde(default = "crate::default_value_structured_logging_level_prefix", skip_serializing_if = "crate::default_value_equal_structured_logging_level_prefix")] - level_prefix: String, - #[serde(default = "crate::default_value_structured_logging_time_format", skip_serializing_if = "crate::default_value_equal_structured_logging_time_format")] - time_format: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LoggingConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - verbose: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - verbose_health_checks: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - verbose_log_destination: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - syslog_facility: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - structured: StructuredLoggingConfiguration, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct GeneralConfiguration { - #[serde(default = "crate::U16::<1232>::value", skip_serializing_if = "crate::U16::<1232>::is_equal")] - edns_udp_payload_size_self_generated_answers: u16, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - add_edns_to_self_generated_answers: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - truncate_tc_answers: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - fixup_case: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - allow_empty_responses: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - drop_empty_queries: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - capabilities_to_retain: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct PacketCacheConfiguration { - name: String, - size: u64, - #[serde(default = "crate::Bool::::value", skip_serializing_if = "crate::if_true")] - deferrable_insert_lock: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - dont_age: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - keep_stale_data: bool, - #[serde(default = "crate::U32::<3600>::value", skip_serializing_if = "crate::U32::<3600>::is_equal")] - max_negative_ttl: u32, - #[serde(default = "crate::U32::<86400>::value", skip_serializing_if = "crate::U32::<86400>::is_equal")] - max_ttl: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - min_ttl: u32, - #[serde(default = "crate::U32::<20>::value", skip_serializing_if = "crate::U32::<20>::is_equal")] - shards: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - parse_ecs: bool, - #[serde(default = "crate::U32::<60>::value", skip_serializing_if = "crate::U32::<60>::is_equal")] - stale_ttl: u32, - #[serde(default = "crate::U32::<60>::value", skip_serializing_if = "crate::U32::<60>::is_equal")] - temporary_failure_ttl: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - truncated_ttl: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - cookie_hashing: bool, - #[serde(default = "crate::U32::<4096>::value", skip_serializing_if = "crate::U32::<4096>::is_equal")] - maximum_entry_size: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - options_to_skip: Vec, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct ProxyProtocolConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - acl: Vec, - #[serde(default = "crate::U32::<512>::value", skip_serializing_if = "crate::U32::<512>::is_equal")] - maximum_payload_size: u32, - #[serde(default, skip_serializing_if = "crate::is_default")] - apply_acl_to_proxied_clients: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct SnmpConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - enabled: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - traps_enabled: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - daemon_socket: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct QueryCountConfiguration { - #[serde(default, skip_serializing_if = "crate::is_default")] - enabled: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - filter_function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - filter_function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - filter_function_file: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct PoolConfiguration { - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - packet_cache: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - policy: String, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct CustomLoadBalancingPolicyConfiguration { - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_code: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - function_file: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - ffi: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - per_thread: bool, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct LoadBalancingPoliciesConfiguration { - #[serde(default = "crate::default_value_load_balancing_policies_default_policy", skip_serializing_if = "crate::default_value_equal_load_balancing_policies_default_policy")] - default_policy: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - servfail_on_no_server: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - round_robin_servfail_on_no_server: bool, - #[serde(default, skip_serializing_if = "crate::is_default")] - weighted_balancing_factor: f64, - #[serde(default, skip_serializing_if = "crate::is_default")] - consistent_hashing_balancing_factor: f64, - #[serde(default, skip_serializing_if = "crate::is_default")] - custom_policies: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - hash_perturbation: u32, - } - - struct QueryRuleConfiguration { - name: String, - uuid: String, - selector: SharedDNSSelector, - action: SharedDNSAction, - } - - struct ResponseRuleConfiguration { - name: String, - uuid: String, - selector: SharedDNSSelector, - action: SharedDNSResponseAction, - } - - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct XskConfiguration { - name: String, - interface: String, - queues: u16, - #[serde(default = "crate::U32::<65536>::value", skip_serializing_if = "crate::U32::<65536>::is_equal")] - frames: u32, - #[serde(default = "crate::default_value_xsk_map_path", skip_serializing_if = "crate::default_value_equal_xsk_map_path")] - map_path: String, - } - - - /* - * Functions callable from Rust (actions and selectors) - */ - unsafe extern "C++" { - fn getAllowAction(config: &AllowActionConfiguration) -> Result>; - fn getContinueAction(config: &ContinueActionConfiguration) -> Result>; - fn getDelayAction(config: &DelayActionConfiguration) -> Result>; - fn getDnstapLogAction(config: &DnstapLogActionConfiguration) -> Result>; - fn getDropAction(config: &DropActionConfiguration) -> Result>; - fn getSetEDNSOptionAction(config: &SetEDNSOptionActionConfiguration) -> Result>; - fn getERCodeAction(config: &ERCodeActionConfiguration) -> Result>; - fn getHTTPStatusAction(config: &HTTPStatusActionConfiguration) -> Result>; - fn getKeyValueStoreLookupAction(config: &KeyValueStoreLookupActionConfiguration) -> Result>; - fn getKeyValueStoreRangeLookupAction(config: &KeyValueStoreRangeLookupActionConfiguration) -> Result>; - fn getLogAction(config: &LogActionConfiguration) -> Result>; - fn getLuaAction(config: &LuaActionConfiguration) -> Result>; - fn getLuaFFIAction(config: &LuaFFIActionConfiguration) -> Result>; - fn getLuaFFIPerThreadAction(config: &LuaFFIPerThreadActionConfiguration) -> Result>; - fn getNegativeAndSOAAction(config: &NegativeAndSOAActionConfiguration) -> Result>; - fn getNoneAction(config: &NoneActionConfiguration) -> Result>; - fn getPoolAction(config: &PoolActionConfiguration) -> Result>; - fn getQPSAction(config: &QPSActionConfiguration) -> Result>; - fn getQPSPoolAction(config: &QPSPoolActionConfiguration) -> Result>; - fn getRCodeAction(config: &RCodeActionConfiguration) -> Result>; - fn getRemoteLogAction(config: &RemoteLogActionConfiguration) -> Result>; - fn getSetAdditionalProxyProtocolValueAction(config: &SetAdditionalProxyProtocolValueActionConfiguration) -> Result>; - fn getSetDisableECSAction(config: &SetDisableECSActionConfiguration) -> Result>; - fn getSetDisableValidationAction(config: &SetDisableValidationActionConfiguration) -> Result>; - fn getSetECSAction(config: &SetECSActionConfiguration) -> Result>; - fn getSetECSOverrideAction(config: &SetECSOverrideActionConfiguration) -> Result>; - fn getSetECSPrefixLengthAction(config: &SetECSPrefixLengthActionConfiguration) -> Result>; - fn getSetExtendedDNSErrorAction(config: &SetExtendedDNSErrorActionConfiguration) -> Result>; - fn getSetMacAddrAction(config: &SetMacAddrActionConfiguration) -> Result>; - fn getSetMaxReturnedTTLAction(config: &SetMaxReturnedTTLActionConfiguration) -> Result>; - fn getSetNoRecurseAction(config: &SetNoRecurseActionConfiguration) -> Result>; - fn getSetProxyProtocolValuesAction(config: &SetProxyProtocolValuesActionConfiguration) -> Result>; - fn getSetSkipCacheAction(config: &SetSkipCacheActionConfiguration) -> Result>; - fn getSetTagAction(config: &SetTagActionConfiguration) -> Result>; - fn getSetTempFailureCacheTTLAction(config: &SetTempFailureCacheTTLActionConfiguration) -> Result>; - fn getSNMPTrapAction(config: &SNMPTrapActionConfiguration) -> Result>; - fn getSpoofAction(config: &SpoofActionConfiguration) -> Result>; - fn getSpoofCNAMEAction(config: &SpoofCNAMEActionConfiguration) -> Result>; - fn getSpoofPacketAction(config: &SpoofPacketActionConfiguration) -> Result>; - fn getSpoofRawAction(config: &SpoofRawActionConfiguration) -> Result>; - fn getSpoofSVCAction(config: &SpoofSVCActionConfiguration) -> Result>; - fn getTCAction(config: &TCActionConfiguration) -> Result>; - fn getTeeAction(config: &TeeActionConfiguration) -> Result>; - fn getAllowResponseAction(config: &AllowResponseActionConfiguration) -> Result>; - fn getClearRecordTypesResponseAction(config: &ClearRecordTypesResponseActionConfiguration) -> Result>; - fn getDelayResponseAction(config: &DelayResponseActionConfiguration) -> Result>; - fn getDnstapLogResponseAction(config: &DnstapLogResponseActionConfiguration) -> Result>; - fn getDropResponseAction(config: &DropResponseActionConfiguration) -> Result>; - fn getLimitTTLResponseAction(config: &LimitTTLResponseActionConfiguration) -> Result>; - fn getLogResponseAction(config: &LogResponseActionConfiguration) -> Result>; - fn getLuaResponseAction(config: &LuaResponseActionConfiguration) -> Result>; - fn getLuaFFIResponseAction(config: &LuaFFIResponseActionConfiguration) -> Result>; - fn getLuaFFIPerThreadResponseAction(config: &LuaFFIPerThreadResponseActionConfiguration) -> Result>; - fn getRemoteLogResponseAction(config: &RemoteLogResponseActionConfiguration) -> Result>; - fn getSetEDNSOptionResponseAction(config: &SetEDNSOptionResponseActionConfiguration) -> Result>; - fn getSetExtendedDNSErrorResponseAction(config: &SetExtendedDNSErrorResponseActionConfiguration) -> Result>; - fn getSetMaxReturnedTTLResponseAction(config: &SetMaxReturnedTTLResponseActionConfiguration) -> Result>; - fn getSetMaxTTLResponseAction(config: &SetMaxTTLResponseActionConfiguration) -> Result>; - fn getSetMinTTLResponseAction(config: &SetMinTTLResponseActionConfiguration) -> Result>; - fn getSetReducedTTLResponseAction(config: &SetReducedTTLResponseActionConfiguration) -> Result>; - fn getSetSkipCacheResponseAction(config: &SetSkipCacheResponseActionConfiguration) -> Result>; - fn getSetTagResponseAction(config: &SetTagResponseActionConfiguration) -> Result>; - fn getSNMPTrapResponseAction(config: &SNMPTrapResponseActionConfiguration) -> Result>; - fn getTCResponseAction(config: &TCResponseActionConfiguration) -> Result>; - fn getAllSelector(config: &AllSelectorConfiguration) -> Result>; - fn getAndSelector(config: &AndSelectorConfiguration) -> Result>; - fn getByNameSelector(config: &ByNameSelectorConfiguration) -> Result>; - fn getDNSSECSelector(config: &DNSSECSelectorConfiguration) -> Result>; - fn getDSTPortSelector(config: &DSTPortSelectorConfiguration) -> Result>; - fn getEDNSOptionSelector(config: &EDNSOptionSelectorConfiguration) -> Result>; - fn getEDNSVersionSelector(config: &EDNSVersionSelectorConfiguration) -> Result>; - fn getERCodeSelector(config: &ERCodeSelectorConfiguration) -> Result>; - fn getHTTPHeaderSelector(config: &HTTPHeaderSelectorConfiguration) -> Result>; - fn getHTTPPathSelector(config: &HTTPPathSelectorConfiguration) -> Result>; - fn getHTTPPathRegexSelector(config: &HTTPPathRegexSelectorConfiguration) -> Result>; - fn getKeyValueStoreLookupSelector(config: &KeyValueStoreLookupSelectorConfiguration) -> Result>; - fn getKeyValueStoreRangeLookupSelector(config: &KeyValueStoreRangeLookupSelectorConfiguration) -> Result>; - fn getLuaSelector(config: &LuaSelectorConfiguration) -> Result>; - fn getLuaFFISelector(config: &LuaFFISelectorConfiguration) -> Result>; - fn getLuaFFIPerThreadSelector(config: &LuaFFIPerThreadSelectorConfiguration) -> Result>; - fn getMaxQPSSelector(config: &MaxQPSSelectorConfiguration) -> Result>; - fn getMaxQPSIPSelector(config: &MaxQPSIPSelectorConfiguration) -> Result>; - fn getNetmaskGroupSelector(config: &NetmaskGroupSelectorConfiguration) -> Result>; - fn getNotSelector(config: &NotSelectorConfiguration) -> Result>; - fn getOpcodeSelector(config: &OpcodeSelectorConfiguration) -> Result>; - fn getOrSelector(config: &OrSelectorConfiguration) -> Result>; - fn getPayloadSizeSelector(config: &PayloadSizeSelectorConfiguration) -> Result>; - fn getPoolAvailableSelector(config: &PoolAvailableSelectorConfiguration) -> Result>; - fn getPoolOutstandingSelector(config: &PoolOutstandingSelectorConfiguration) -> Result>; - fn getProbaSelector(config: &ProbaSelectorConfiguration) -> Result>; - fn getProxyProtocolValueSelector(config: &ProxyProtocolValueSelectorConfiguration) -> Result>; - fn getQClassSelector(config: &QClassSelectorConfiguration) -> Result>; - fn getQNameSelector(config: &QNameSelectorConfiguration) -> Result>; - fn getQNameLabelsCountSelector(config: &QNameLabelsCountSelectorConfiguration) -> Result>; - fn getQNameSetSelector(config: &QNameSetSelectorConfiguration) -> Result>; - fn getQNameSuffixSelector(config: &QNameSuffixSelectorConfiguration) -> Result>; - fn getQNameWireLengthSelector(config: &QNameWireLengthSelectorConfiguration) -> Result>; - fn getQTypeSelector(config: &QTypeSelectorConfiguration) -> Result>; - fn getRCodeSelector(config: &RCodeSelectorConfiguration) -> Result>; - fn getRDSelector(config: &RDSelectorConfiguration) -> Result>; - fn getRE2Selector(config: &RE2SelectorConfiguration) -> Result>; - fn getRecordsCountSelector(config: &RecordsCountSelectorConfiguration) -> Result>; - fn getRecordsTypeCountSelector(config: &RecordsTypeCountSelectorConfiguration) -> Result>; - fn getRegexSelector(config: &RegexSelectorConfiguration) -> Result>; - fn getSNISelector(config: &SNISelectorConfiguration) -> Result>; - fn getTagSelector(config: &TagSelectorConfiguration) -> Result>; - fn getTCPSelector(config: &TCPSelectorConfiguration) -> Result>; - fn getTrailingDataSelector(config: &TrailingDataSelectorConfiguration) -> Result>; - } -// START INCLUDE rust-middle-in.rs - /* - * Functions callable from C++ - */ - extern "Rust" { - fn from_yaml_string(str: &str) -> Result; - } - /* - * Functions callable from Rust - */ - unsafe extern "C++" { - include!("dnsdist-rust-bridge.hh"); - type DNSSelector; - type DNSActionWrapper; - type DNSResponseActionWrapper; - fn registerProtobufLogger(config: &ProtobufLoggerConfiguration); - fn registerDnstapLogger(config: &DnstapLoggerConfiguration); - fn registerKVSObjects(config: &KeyValueStoresConfiguration); - } -} - -impl Default for dnsdistsettings::SharedDNSAction { - fn default() -> dnsdistsettings::SharedDNSAction { - dnsdistsettings::SharedDNSAction { - action: cxx::SharedPtr::null(), - } - } -} - -impl Default for dnsdistsettings::SharedDNSSelector { - fn default() -> dnsdistsettings::SharedDNSSelector { - dnsdistsettings::SharedDNSSelector { - selector: cxx::SharedPtr::null(), - } - } -} - -#[derive(Default, Deserialize, Serialize, Debug, PartialEq)] -#[serde(deny_unknown_fields)] -struct AndSelectorConfigurationSerde { - #[serde(default, skip_serializing_if = "crate::is_default")] - selectors: Vec, -} - -#[derive(Default, Deserialize, Serialize, Debug, PartialEq)] -#[serde(deny_unknown_fields)] -struct OrSelectorConfigurationSerde { - #[serde(default, skip_serializing_if = "crate::is_default")] - selectors: Vec, -} - -#[derive(Default, Deserialize, Serialize, Debug, PartialEq)] -#[serde(deny_unknown_fields)] -struct NotSelectorConfigurationSerde { - #[serde(default, skip_serializing_if = "crate::is_default")] - selector: Box, -} - -#[derive(Default, Deserialize, Serialize, Debug, PartialEq)] -#[serde(deny_unknown_fields)] -struct ContinueActionConfigurationSerde { - #[serde(default, skip_serializing_if = "crate::is_default")] - action: Box, -} - -#[derive(Default, Deserialize, Serialize, Debug, PartialEq)] -#[serde(deny_unknown_fields)] -struct QueryRuleConfigurationSerde { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - uuid: String, - selector: Selector, - action: Action, -} - -impl QueryRuleConfigurationSerde { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} - -#[derive(Default, Deserialize, Serialize, Debug, PartialEq)] -#[serde(deny_unknown_fields)] -struct ResponseRuleConfigurationSerde { - #[serde(default, skip_serializing_if = "crate::is_default")] - name: String, - #[serde(default, skip_serializing_if = "crate::is_default")] - uuid: String, - selector: Selector, - action: ResponseAction, -} - -impl ResponseRuleConfigurationSerde { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -// END INCLUDE rust-middle-in.rs - #[derive(Deserialize, Serialize, Debug, PartialEq)] - #[serde(deny_unknown_fields)] - struct GlobalConfigurationSerde { - #[serde(default = "crate::default_value_global_acl", skip_serializing_if = "crate::default_value_equal_global_acl")] - acl: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - backends: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - binds: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - cache_hit_response_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - cache_inserted_response_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - cache_miss_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - cache_settings: dnsdistsettings::CacheSettingsConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - console: dnsdistsettings::ConsoleConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - dynamic_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - dynamic_rules_settings: dnsdistsettings::DynamicRulesSettingsConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - ebpf: dnsdistsettings::EbpfConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - edns_client_subnet: dnsdistsettings::EdnsClientSubnetConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - general: dnsdistsettings::GeneralConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - key_value_stores: dnsdistsettings::KeyValueStoresConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - load_balancing_policies: dnsdistsettings::LoadBalancingPoliciesConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - logging: dnsdistsettings::LoggingConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - metrics: dnsdistsettings::MetricsConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - packet_caches: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - pools: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - proxy_protocol: dnsdistsettings::ProxyProtocolConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - query_count: dnsdistsettings::QueryCountConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - query_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - remote_logging: dnsdistsettings::RemoteLoggingConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - response_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - ring_buffers: dnsdistsettings::RingBuffersConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - security_polling: dnsdistsettings::SecurityPollingConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - selectors: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - self_answered_response_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - snmp: dnsdistsettings::SnmpConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - tuning: dnsdistsettings::TuningConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - webserver: dnsdistsettings::WebserverConfiguration, - #[serde(default, skip_serializing_if = "crate::is_default")] - xfr_response_rules: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - xsk: Vec, - #[serde(default, skip_serializing_if = "crate::is_default")] - timeout_response_rules: Vec, - } - -#[derive(Default, Serialize, Deserialize, Debug, PartialEq)] -#[serde(tag = "type")] -enum Action { - #[default] - Default, - Allow(dnsdistsettings::AllowActionConfiguration), - Continue(ContinueActionConfigurationSerde), - Delay(dnsdistsettings::DelayActionConfiguration), - DnstapLog(dnsdistsettings::DnstapLogActionConfiguration), - Drop(dnsdistsettings::DropActionConfiguration), - SetEDNSOption(dnsdistsettings::SetEDNSOptionActionConfiguration), - ERCode(dnsdistsettings::ERCodeActionConfiguration), - HTTPStatus(dnsdistsettings::HTTPStatusActionConfiguration), - KeyValueStoreLookup(dnsdistsettings::KeyValueStoreLookupActionConfiguration), - KeyValueStoreRangeLookup(dnsdistsettings::KeyValueStoreRangeLookupActionConfiguration), - Log(dnsdistsettings::LogActionConfiguration), - Lua(dnsdistsettings::LuaActionConfiguration), - LuaFFI(dnsdistsettings::LuaFFIActionConfiguration), - LuaFFIPerThread(dnsdistsettings::LuaFFIPerThreadActionConfiguration), - NegativeAndSOA(dnsdistsettings::NegativeAndSOAActionConfiguration), - None(dnsdistsettings::NoneActionConfiguration), - Pool(dnsdistsettings::PoolActionConfiguration), - QPS(dnsdistsettings::QPSActionConfiguration), - QPSPool(dnsdistsettings::QPSPoolActionConfiguration), - RCode(dnsdistsettings::RCodeActionConfiguration), - RemoteLog(dnsdistsettings::RemoteLogActionConfiguration), - SetAdditionalProxyProtocolValue(dnsdistsettings::SetAdditionalProxyProtocolValueActionConfiguration), - SetDisableECS(dnsdistsettings::SetDisableECSActionConfiguration), - SetDisableValidation(dnsdistsettings::SetDisableValidationActionConfiguration), - SetECS(dnsdistsettings::SetECSActionConfiguration), - SetECSOverride(dnsdistsettings::SetECSOverrideActionConfiguration), - SetECSPrefixLength(dnsdistsettings::SetECSPrefixLengthActionConfiguration), - SetExtendedDNSError(dnsdistsettings::SetExtendedDNSErrorActionConfiguration), - SetMacAddr(dnsdistsettings::SetMacAddrActionConfiguration), - SetMaxReturnedTTL(dnsdistsettings::SetMaxReturnedTTLActionConfiguration), - SetNoRecurse(dnsdistsettings::SetNoRecurseActionConfiguration), - SetProxyProtocolValues(dnsdistsettings::SetProxyProtocolValuesActionConfiguration), - SetSkipCache(dnsdistsettings::SetSkipCacheActionConfiguration), - SetTag(dnsdistsettings::SetTagActionConfiguration), - SetTempFailureCacheTTL(dnsdistsettings::SetTempFailureCacheTTLActionConfiguration), - SNMPTrap(dnsdistsettings::SNMPTrapActionConfiguration), - Spoof(dnsdistsettings::SpoofActionConfiguration), - SpoofCNAME(dnsdistsettings::SpoofCNAMEActionConfiguration), - SpoofPacket(dnsdistsettings::SpoofPacketActionConfiguration), - SpoofRaw(dnsdistsettings::SpoofRawActionConfiguration), - SpoofSVC(dnsdistsettings::SpoofSVCActionConfiguration), - TC(dnsdistsettings::TCActionConfiguration), - Tee(dnsdistsettings::TeeActionConfiguration), -} - -#[derive(Default, Serialize, Deserialize, Debug, PartialEq)] -#[serde(tag = "type")] -enum ResponseAction { - #[default] - Default, - Allow(dnsdistsettings::AllowResponseActionConfiguration), - ClearRecordTypes(dnsdistsettings::ClearRecordTypesResponseActionConfiguration), - Delay(dnsdistsettings::DelayResponseActionConfiguration), - DnstapLog(dnsdistsettings::DnstapLogResponseActionConfiguration), - Drop(dnsdistsettings::DropResponseActionConfiguration), - LimitTTL(dnsdistsettings::LimitTTLResponseActionConfiguration), - Log(dnsdistsettings::LogResponseActionConfiguration), - Lua(dnsdistsettings::LuaResponseActionConfiguration), - LuaFFI(dnsdistsettings::LuaFFIResponseActionConfiguration), - LuaFFIPerThread(dnsdistsettings::LuaFFIPerThreadResponseActionConfiguration), - RemoteLog(dnsdistsettings::RemoteLogResponseActionConfiguration), - SetEDNSOption(dnsdistsettings::SetEDNSOptionResponseActionConfiguration), - SetExtendedDNSError(dnsdistsettings::SetExtendedDNSErrorResponseActionConfiguration), - SetMaxReturnedTTL(dnsdistsettings::SetMaxReturnedTTLResponseActionConfiguration), - SetMaxTTL(dnsdistsettings::SetMaxTTLResponseActionConfiguration), - SetMinTTL(dnsdistsettings::SetMinTTLResponseActionConfiguration), - SetReducedTTL(dnsdistsettings::SetReducedTTLResponseActionConfiguration), - SetSkipCache(dnsdistsettings::SetSkipCacheResponseActionConfiguration), - SetTag(dnsdistsettings::SetTagResponseActionConfiguration), - SNMPTrap(dnsdistsettings::SNMPTrapResponseActionConfiguration), - TC(dnsdistsettings::TCResponseActionConfiguration), -} - -#[derive(Default, Serialize, Deserialize, Debug, PartialEq)] -#[serde(tag = "type")] -enum Selector { - #[default] - Default, - All(dnsdistsettings::AllSelectorConfiguration), - And(AndSelectorConfigurationSerde), - ByName(dnsdistsettings::ByNameSelectorConfiguration), - DNSSEC(dnsdistsettings::DNSSECSelectorConfiguration), - DSTPort(dnsdistsettings::DSTPortSelectorConfiguration), - EDNSOption(dnsdistsettings::EDNSOptionSelectorConfiguration), - EDNSVersion(dnsdistsettings::EDNSVersionSelectorConfiguration), - ERCode(dnsdistsettings::ERCodeSelectorConfiguration), - HTTPHeader(dnsdistsettings::HTTPHeaderSelectorConfiguration), - HTTPPath(dnsdistsettings::HTTPPathSelectorConfiguration), - HTTPPathRegex(dnsdistsettings::HTTPPathRegexSelectorConfiguration), - KeyValueStoreLookup(dnsdistsettings::KeyValueStoreLookupSelectorConfiguration), - KeyValueStoreRangeLookup(dnsdistsettings::KeyValueStoreRangeLookupSelectorConfiguration), - Lua(dnsdistsettings::LuaSelectorConfiguration), - LuaFFI(dnsdistsettings::LuaFFISelectorConfiguration), - LuaFFIPerThread(dnsdistsettings::LuaFFIPerThreadSelectorConfiguration), - MaxQPS(dnsdistsettings::MaxQPSSelectorConfiguration), - MaxQPSIP(dnsdistsettings::MaxQPSIPSelectorConfiguration), - NetmaskGroup(dnsdistsettings::NetmaskGroupSelectorConfiguration), - Not(NotSelectorConfigurationSerde), - Opcode(dnsdistsettings::OpcodeSelectorConfiguration), - Or(OrSelectorConfigurationSerde), - PayloadSize(dnsdistsettings::PayloadSizeSelectorConfiguration), - PoolAvailable(dnsdistsettings::PoolAvailableSelectorConfiguration), - PoolOutstanding(dnsdistsettings::PoolOutstandingSelectorConfiguration), - Proba(dnsdistsettings::ProbaSelectorConfiguration), - ProxyProtocolValue(dnsdistsettings::ProxyProtocolValueSelectorConfiguration), - QClass(dnsdistsettings::QClassSelectorConfiguration), - QName(dnsdistsettings::QNameSelectorConfiguration), - QNameLabelsCount(dnsdistsettings::QNameLabelsCountSelectorConfiguration), - QNameSet(dnsdistsettings::QNameSetSelectorConfiguration), - QNameSuffix(dnsdistsettings::QNameSuffixSelectorConfiguration), - QNameWireLength(dnsdistsettings::QNameWireLengthSelectorConfiguration), - QType(dnsdistsettings::QTypeSelectorConfiguration), - RCode(dnsdistsettings::RCodeSelectorConfiguration), - RD(dnsdistsettings::RDSelectorConfiguration), - RE2(dnsdistsettings::RE2SelectorConfiguration), - RecordsCount(dnsdistsettings::RecordsCountSelectorConfiguration), - RecordsTypeCount(dnsdistsettings::RecordsTypeCountSelectorConfiguration), - Regex(dnsdistsettings::RegexSelectorConfiguration), - SNI(dnsdistsettings::SNISelectorConfiguration), - Tag(dnsdistsettings::TagSelectorConfiguration), - TCP(dnsdistsettings::TCPSelectorConfiguration), - TrailingData(dnsdistsettings::TrailingDataSelectorConfiguration), -} - -impl Default for dnsdistsettings::MetricsConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::MetricsConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::CarbonConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::CarbonConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::RemoteLoggingConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::RemoteLoggingConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::ProtobufLoggerConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::ProtobufLoggerConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::DnstapLoggerConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::DnstapLoggerConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::ProtoBufMetaConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::ProtoBufMetaConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::LmdbKvStoreConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::LmdbKvStoreConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::CdbKvStoreConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::CdbKvStoreConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::KvsLookupKeySourceIpConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::KvsLookupKeySourceIpConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::KvsLookupKeyQnameConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::KvsLookupKeyQnameConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::KvsLookupKeySuffixConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::KvsLookupKeySuffixConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::KvsLookupKeyTagConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::KvsLookupKeyTagConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::KvsLookupKeysConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::KvsLookupKeysConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::KeyValueStoresConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::KeyValueStoresConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for webserver_acl -fn default_value_webserver_acl() -> Vec { - vec![ - String::from("127.0.0.1"), - String::from("::1"), - ] -} -fn default_value_equal_webserver_acl(value: &Vec) -> bool { - let def = default_value_webserver_acl(); - &def == value -} - - -impl Default for dnsdistsettings::WebserverConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::WebserverConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for console_acl -fn default_value_console_acl() -> Vec { - vec![ - String::from("127.0.0.1"), - String::from("::1"), - ] -} -fn default_value_equal_console_acl(value: &Vec) -> bool { - let def = default_value_console_acl(); - &def == value -} - - -impl Default for dnsdistsettings::ConsoleConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::ConsoleConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::EbpfMapConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::EbpfMapConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::EbpfConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::EbpfConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::EdnsClientSubnetConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::EdnsClientSubnetConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for dynamic_rules_settings_default_action -fn default_value_dynamic_rules_settings_default_action() -> String { - String::from("Drop") -} -fn default_value_equal_dynamic_rules_settings_default_action(value: &str)-> bool { - value == default_value_dynamic_rules_settings_default_action() -} - - -impl Default for dnsdistsettings::DynamicRulesSettingsConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::DynamicRulesSettingsConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for dynamic_rule_action -fn default_value_dynamic_rule_action() -> String { - String::from("drop") -} -fn default_value_equal_dynamic_rule_action(value: &str)-> bool { - value == default_value_dynamic_rule_action() -} - - -// DEFAULT HANDLING for dynamic_rule_tag_value -fn default_value_dynamic_rule_tag_value() -> String { - String::from("0") -} -fn default_value_equal_dynamic_rule_tag_value(value: &str)-> bool { - value == default_value_dynamic_rule_tag_value() -} - - -impl Default for dnsdistsettings::DynamicRuleConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::DynamicRuleConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::DynamicRulesConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::DynamicRulesConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::RingBuffersConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::RingBuffersConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::IncomingTlsCertificateKeyPairConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingTlsCertificateKeyPairConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for incoming_tls_provider -fn default_value_incoming_tls_provider() -> String { - String::from("OpenSSL") -} -fn default_value_equal_incoming_tls_provider(value: &str)-> bool { - value == default_value_incoming_tls_provider() -} - - -// DEFAULT HANDLING for incoming_tls_minimum_version -fn default_value_incoming_tls_minimum_version() -> String { - String::from("tls1.0") -} -fn default_value_equal_incoming_tls_minimum_version(value: &str)-> bool { - value == default_value_incoming_tls_minimum_version() -} - - -impl Default for dnsdistsettings::IncomingTlsConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingTlsConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for outgoing_tls_provider -fn default_value_outgoing_tls_provider() -> String { - String::from("OpenSSL") -} -fn default_value_equal_outgoing_tls_provider(value: &str)-> bool { - value == default_value_outgoing_tls_provider() -} - - -impl Default for dnsdistsettings::OutgoingTlsConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::OutgoingTlsConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::HttpCustomResponseHeaderConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::HttpCustomResponseHeaderConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::HttpResponsesMapConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::HttpResponsesMapConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for incoming_doh_provider -fn default_value_incoming_doh_provider() -> String { - String::from("nghttp2") -} -fn default_value_equal_incoming_doh_provider(value: &str)-> bool { - value == default_value_incoming_doh_provider() -} - - -// DEFAULT HANDLING for incoming_doh_paths -fn default_value_incoming_doh_paths() -> Vec { - vec![ - String::from("/dns-query"), - ] -} -fn default_value_equal_incoming_doh_paths(value: &Vec) -> bool { - let def = default_value_incoming_doh_paths(); - &def == value -} - - -impl Default for dnsdistsettings::IncomingDohConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingDohConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::IncomingDoqConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingDoqConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for incoming_quic_congestion_control_algorithm -fn default_value_incoming_quic_congestion_control_algorithm() -> String { - String::from("reno") -} -fn default_value_equal_incoming_quic_congestion_control_algorithm(value: &str)-> bool { - value == default_value_incoming_quic_congestion_control_algorithm() -} - - -impl Default for dnsdistsettings::IncomingQuicConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingQuicConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::IncomingDnscryptCertificateKeyPairConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingDnscryptCertificateKeyPairConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::IncomingDnscryptConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingDnscryptConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for outgoing_doh_path -fn default_value_outgoing_doh_path() -> String { - String::from("/dns-query") -} -fn default_value_equal_outgoing_doh_path(value: &str)-> bool { - value == default_value_outgoing_doh_path() -} - - -impl Default for dnsdistsettings::OutgoingDohConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::OutgoingDohConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::IncomingTcpConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::IncomingTcpConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for bind_protocol -fn default_value_bind_protocol() -> String { - String::from("Do53") -} -fn default_value_equal_bind_protocol(value: &str)-> bool { - value == default_value_bind_protocol() -} - - -impl Default for dnsdistsettings::BindConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::BindConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::OutgoingTcpConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::OutgoingTcpConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::ProxyProtocolValueConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::ProxyProtocolValueConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for lazy_health_check_mode -fn default_value_lazy_health_check_mode() -> String { - String::from("TimeoutOrServFail") -} -fn default_value_equal_lazy_health_check_mode(value: &str)-> bool { - value == default_value_lazy_health_check_mode() -} - - -impl Default for dnsdistsettings::LazyHealthCheckConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::LazyHealthCheckConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for health_check_mode -fn default_value_health_check_mode() -> String { - String::from("auto") -} -fn default_value_equal_health_check_mode(value: &str)-> bool { - value == default_value_health_check_mode() -} - - -// DEFAULT HANDLING for health_check_qclass -fn default_value_health_check_qclass() -> String { - String::from("IN") -} -fn default_value_equal_health_check_qclass(value: &str)-> bool { - value == default_value_health_check_qclass() -} - - -// DEFAULT HANDLING for health_check_qtype -fn default_value_health_check_qtype() -> String { - String::from("A") -} -fn default_value_equal_health_check_qtype(value: &str)-> bool { - value == default_value_health_check_qtype() -} - - -impl Default for dnsdistsettings::HealthCheckConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::HealthCheckConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::OutgoingAutoUpgradeConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::OutgoingAutoUpgradeConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::BackendConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::BackendConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::TuningConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::TuningConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::TcpTuningConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::TcpTuningConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::UdpTuningConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::UdpTuningConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::TlsEngineConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::TlsEngineConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::TlsTuningConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::TlsTuningConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::DohTuningConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::DohTuningConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::CacheSettingsConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::CacheSettingsConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for security_polling_suffix -fn default_value_security_polling_suffix() -> String { - String::from("secpoll.powerdns.com.") -} -fn default_value_equal_security_polling_suffix(value: &str)-> bool { - value == default_value_security_polling_suffix() -} - - -impl Default for dnsdistsettings::SecurityPollingConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::SecurityPollingConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for structured_logging_level_prefix -fn default_value_structured_logging_level_prefix() -> String { - String::from("prio") -} -fn default_value_equal_structured_logging_level_prefix(value: &str)-> bool { - value == default_value_structured_logging_level_prefix() -} - - -// DEFAULT HANDLING for structured_logging_time_format -fn default_value_structured_logging_time_format() -> String { - String::from("numeric") -} -fn default_value_equal_structured_logging_time_format(value: &str)-> bool { - value == default_value_structured_logging_time_format() -} - - -impl Default for dnsdistsettings::StructuredLoggingConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::StructuredLoggingConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::LoggingConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::LoggingConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::GeneralConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::GeneralConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::PacketCacheConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::PacketCacheConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::ProxyProtocolConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::ProxyProtocolConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::SnmpConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::SnmpConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::QueryCountConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::QueryCountConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::PoolConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::PoolConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl Default for dnsdistsettings::CustomLoadBalancingPolicyConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::CustomLoadBalancingPolicyConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for load_balancing_policies_default_policy -fn default_value_load_balancing_policies_default_policy() -> String { - String::from("leastOutstanding") -} -fn default_value_equal_load_balancing_policies_default_policy(value: &str)-> bool { - value == default_value_load_balancing_policies_default_policy() -} - - -impl Default for dnsdistsettings::LoadBalancingPoliciesConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::LoadBalancingPoliciesConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for xsk_map_path -fn default_value_xsk_map_path() -> String { - String::from("/sys/fs/bpf/dnsdist/xskmap") -} -fn default_value_equal_xsk_map_path(value: &str)-> bool { - value == default_value_xsk_map_path() -} - - -impl Default for dnsdistsettings::XskConfiguration { - fn default() -> Self { - let deserialized: dnsdistsettings::XskConfiguration = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -// DEFAULT HANDLING for global_acl -fn default_value_global_acl() -> Vec { - vec![ - String::from("127.0.0.0/8"), - String::from("10.0.0.0/8"), - String::from("100.64.0.0/10"), - String::from("169.254.0.0/16"), - String::from("192.168.0.0/16"), - String::from("172.16.0.0/12"), - String::from("::1/128"), - String::from("fc00::/7"), - String::from("fe80::/10"), - ] -} -fn default_value_equal_global_acl(value: &Vec) -> bool { - let def = default_value_global_acl(); - &def == value -} - - -impl Default for GlobalConfigurationSerde { - fn default() -> Self { - let deserialized: GlobalConfigurationSerde = serde_yaml::from_str("").unwrap(); - deserialized - } -} - - -impl dnsdistsettings::MetricsConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.carbon { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::CarbonConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::RemoteLoggingConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.protobuf_loggers { - sub_type.validate()?; - } - for sub_type in &self.dnstap_loggers { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::ProtobufLoggerConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::DnstapLoggerConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::LmdbKvStoreConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::CdbKvStoreConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::KvsLookupKeySourceIpConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::KvsLookupKeyQnameConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::KvsLookupKeySuffixConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::KvsLookupKeyTagConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::KvsLookupKeysConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.source_ip_keys { - sub_type.validate()?; - } - for sub_type in &self.qname_keys { - sub_type.validate()?; - } - for sub_type in &self.suffix_keys { - sub_type.validate()?; - } - for sub_type in &self.tag_keys { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::KeyValueStoresConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.lmdb { - sub_type.validate()?; - } - for sub_type in &self.cdb { - sub_type.validate()?; - } - self.lookup_keys.validate()?; - Ok(()) - } -} -impl dnsdistsettings::WebserverConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.custom_headers { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::ConsoleConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::EbpfMapConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::EbpfConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - self.ipv4.validate()?; - self.ipv6.validate()?; - self.cidr_ipv4.validate()?; - self.cidr_ipv6.validate()?; - self.qnames.validate()?; - Ok(()) - } -} -impl dnsdistsettings::EdnsClientSubnetConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::DynamicRulesSettingsConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::DynamicRuleConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::DynamicRulesConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.rules { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::RingBuffersConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::IncomingTlsCertificateKeyPairConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::IncomingTlsConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.certificates { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::OutgoingTlsConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::HttpCustomResponseHeaderConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::HttpResponsesMapConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.headers { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::IncomingDohConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.custom_response_headers { - sub_type.validate()?; - } - for sub_type in &self.responses_map { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::IncomingDoqConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::IncomingQuicConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::IncomingDnscryptCertificateKeyPairConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::IncomingDnscryptConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.certificates { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::OutgoingDohConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::IncomingTcpConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::BindConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - self.tcp.validate()?; - self.tls.validate()?; - self.doh.validate()?; - self.doq.validate()?; - self.quic.validate()?; - self.dnscrypt.validate()?; - Ok(()) - } -} -impl dnsdistsettings::OutgoingTcpConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::LazyHealthCheckConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::HealthCheckConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - self.lazy.validate()?; - Ok(()) - } -} -impl dnsdistsettings::OutgoingAutoUpgradeConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::BackendConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - self.tls.validate()?; - self.doh.validate()?; - self.tcp.validate()?; - self.health_checks.validate()?; - self.auto_upgrade.validate()?; - Ok(()) - } -} -impl dnsdistsettings::TuningConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - self.doh.validate()?; - self.tcp.validate()?; - self.tls.validate()?; - self.udp.validate()?; - Ok(()) - } -} -impl dnsdistsettings::TcpTuningConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::UdpTuningConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::TlsEngineConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::TlsTuningConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.engines { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::DohTuningConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::CacheSettingsConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::SecurityPollingConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::StructuredLoggingConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::LoggingConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - self.structured.validate()?; - Ok(()) - } -} -impl dnsdistsettings::GeneralConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::PacketCacheConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::ProxyProtocolConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::SnmpConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::QueryCountConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::PoolConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::CustomLoadBalancingPolicyConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl dnsdistsettings::LoadBalancingPoliciesConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.custom_policies { - sub_type.validate()?; - } - Ok(()) - } -} -impl dnsdistsettings::XskConfiguration { - fn validate(&self) -> Result<(), ValidationError> { - Ok(()) - } -} -impl GlobalConfigurationSerde { - fn validate(&self) -> Result<(), ValidationError> { - for sub_type in &self.backends { - sub_type.validate()?; - } - for sub_type in &self.binds { - sub_type.validate()?; - } - for sub_type in &self.cache_hit_response_rules { - sub_type.validate()?; - } - for sub_type in &self.cache_inserted_response_rules { - sub_type.validate()?; - } - for sub_type in &self.cache_miss_rules { - sub_type.validate()?; - } - self.cache_settings.validate()?; - self.console.validate()?; - for sub_type in &self.dynamic_rules { - sub_type.validate()?; - } - self.dynamic_rules_settings.validate()?; - self.ebpf.validate()?; - self.edns_client_subnet.validate()?; - self.general.validate()?; - self.key_value_stores.validate()?; - self.load_balancing_policies.validate()?; - self.logging.validate()?; - self.metrics.validate()?; - for sub_type in &self.packet_caches { - sub_type.validate()?; - } - for sub_type in &self.pools { - sub_type.validate()?; - } - self.proxy_protocol.validate()?; - self.query_count.validate()?; - for sub_type in &self.query_rules { - sub_type.validate()?; - } - self.remote_logging.validate()?; - for sub_type in &self.response_rules { - sub_type.validate()?; - } - self.ring_buffers.validate()?; - self.security_polling.validate()?; - for sub_type in &self.self_answered_response_rules { - sub_type.validate()?; - } - self.snmp.validate()?; - self.tuning.validate()?; - self.webserver.validate()?; - for sub_type in &self.xfr_response_rules { - sub_type.validate()?; - } - for sub_type in &self.xsk { - sub_type.validate()?; - } - for sub_type in &self.timeout_response_rules { - sub_type.validate()?; - } - Ok(()) - } -} -fn get_one_action_from_serde(action: &Action) -> Result { - match action { - Action::Default => {} - Action::Allow(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getAllowAction(&config)?, - }); - } - Action::Continue(cont) => { - let mut config: dnsdistsettings::ContinueActionConfiguration = Default::default(); - config.action = get_one_action_from_serde(&*cont.action)?; - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getContinueAction(&config)?, - }); - } - Action::Delay(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getDelayAction(&config)?, - }); - } - Action::DnstapLog(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getDnstapLogAction(&config)?, - }); - } - Action::Drop(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getDropAction(&config)?, - }); - } - Action::SetEDNSOption(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetEDNSOptionAction(&config)?, - }); - } - Action::ERCode(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getERCodeAction(&config)?, - }); - } - Action::HTTPStatus(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getHTTPStatusAction(&config)?, - }); - } - Action::KeyValueStoreLookup(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getKeyValueStoreLookupAction(&config)?, - }); - } - Action::KeyValueStoreRangeLookup(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getKeyValueStoreRangeLookupAction(&config)?, - }); - } - Action::Log(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getLogAction(&config)?, - }); - } - Action::Lua(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getLuaAction(&config)?, - }); - } - Action::LuaFFI(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getLuaFFIAction(&config)?, - }); - } - Action::LuaFFIPerThread(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getLuaFFIPerThreadAction(&config)?, - }); - } - Action::NegativeAndSOA(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getNegativeAndSOAAction(&config)?, - }); - } - Action::None(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getNoneAction(&config)?, - }); - } - Action::Pool(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getPoolAction(&config)?, - }); - } - Action::QPS(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getQPSAction(&config)?, - }); - } - Action::QPSPool(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getQPSPoolAction(&config)?, - }); - } - Action::RCode(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getRCodeAction(&config)?, - }); - } - Action::RemoteLog(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getRemoteLogAction(&config)?, - }); - } - Action::SetAdditionalProxyProtocolValue(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetAdditionalProxyProtocolValueAction(&config)?, - }); - } - Action::SetDisableECS(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetDisableECSAction(&config)?, - }); - } - Action::SetDisableValidation(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetDisableValidationAction(&config)?, - }); - } - Action::SetECS(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetECSAction(&config)?, - }); - } - Action::SetECSOverride(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetECSOverrideAction(&config)?, - }); - } - Action::SetECSPrefixLength(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetECSPrefixLengthAction(&config)?, - }); - } - Action::SetExtendedDNSError(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetExtendedDNSErrorAction(&config)?, - }); - } - Action::SetMacAddr(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetMacAddrAction(&config)?, - }); - } - Action::SetMaxReturnedTTL(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetMaxReturnedTTLAction(&config)?, - }); - } - Action::SetNoRecurse(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetNoRecurseAction(&config)?, - }); - } - Action::SetProxyProtocolValues(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetProxyProtocolValuesAction(&config)?, - }); - } - Action::SetSkipCache(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetSkipCacheAction(&config)?, - }); - } - Action::SetTag(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetTagAction(&config)?, - }); - } - Action::SetTempFailureCacheTTL(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSetTempFailureCacheTTLAction(&config)?, - }); - } - Action::SNMPTrap(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSNMPTrapAction(&config)?, - }); - } - Action::Spoof(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSpoofAction(&config)?, - }); - } - Action::SpoofCNAME(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSpoofCNAMEAction(&config)?, - }); - } - Action::SpoofPacket(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSpoofPacketAction(&config)?, - }); - } - Action::SpoofRaw(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSpoofRawAction(&config)?, - }); - } - Action::SpoofSVC(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getSpoofSVCAction(&config)?, - }); - } - Action::TC(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getTCAction(&config)?, - }); - } - Action::Tee(config) => { - return Ok(dnsdistsettings::SharedDNSAction { - action: dnsdistsettings::getTeeAction(&config)?, - }); - } - } - panic!("no action") -} -fn get_one_response_action_from_serde(action: &ResponseAction) -> Result { - match action { - ResponseAction::Default => {} - ResponseAction::Allow(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getAllowResponseAction(&config)?, - }); - } - ResponseAction::ClearRecordTypes(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getClearRecordTypesResponseAction(&config)?, - }); - } - ResponseAction::Delay(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getDelayResponseAction(&config)?, - }); - } - ResponseAction::DnstapLog(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getDnstapLogResponseAction(&config)?, - }); - } - ResponseAction::Drop(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getDropResponseAction(&config)?, - }); - } - ResponseAction::LimitTTL(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getLimitTTLResponseAction(&config)?, - }); - } - ResponseAction::Log(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getLogResponseAction(&config)?, - }); - } - ResponseAction::Lua(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getLuaResponseAction(&config)?, - }); - } - ResponseAction::LuaFFI(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getLuaFFIResponseAction(&config)?, - }); - } - ResponseAction::LuaFFIPerThread(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getLuaFFIPerThreadResponseAction(&config)?, - }); - } - ResponseAction::RemoteLog(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getRemoteLogResponseAction(&config)?, - }); - } - ResponseAction::SetEDNSOption(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetEDNSOptionResponseAction(&config)?, - }); - } - ResponseAction::SetExtendedDNSError(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetExtendedDNSErrorResponseAction(&config)?, - }); - } - ResponseAction::SetMaxReturnedTTL(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetMaxReturnedTTLResponseAction(&config)?, - }); - } - ResponseAction::SetMaxTTL(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetMaxTTLResponseAction(&config)?, - }); - } - ResponseAction::SetMinTTL(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetMinTTLResponseAction(&config)?, - }); - } - ResponseAction::SetReducedTTL(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetReducedTTLResponseAction(&config)?, - }); - } - ResponseAction::SetSkipCache(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetSkipCacheResponseAction(&config)?, - }); - } - ResponseAction::SetTag(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSetTagResponseAction(&config)?, - }); - } - ResponseAction::SNMPTrap(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getSNMPTrapResponseAction(&config)?, - }); - } - ResponseAction::TC(config) => { - return Ok(dnsdistsettings::SharedDNSResponseAction { - action: dnsdistsettings::getTCResponseAction(&config)?, - }); - } - } - panic!("no action") -} -fn get_one_selector_from_serde(selector: &Selector) -> Result { - match selector { - Selector::Default => {} - Selector::All(all) => { - match dnsdistsettings::getAllSelector(&all) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::And(and) => { - let mut config: dnsdistsettings::AndSelectorConfiguration = Default::default(); - for sub_selector in &and.selectors { - config.selectors.push(get_one_selector_from_serde(&sub_selector)?) - } - return Ok(dnsdistsettings::SharedDNSSelector { - selector: dnsdistsettings::getAndSelector(&config)? - }) - } - Selector::ByName(byname) => { - match dnsdistsettings::getByNameSelector(&byname) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::DNSSEC(dnssec) => { - match dnsdistsettings::getDNSSECSelector(&dnssec) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::DSTPort(dstport) => { - match dnsdistsettings::getDSTPortSelector(&dstport) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::EDNSOption(ednsoption) => { - match dnsdistsettings::getEDNSOptionSelector(&ednsoption) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::EDNSVersion(ednsversion) => { - match dnsdistsettings::getEDNSVersionSelector(&ednsversion) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::ERCode(ercode) => { - match dnsdistsettings::getERCodeSelector(&ercode) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::HTTPHeader(httpheader) => { - match dnsdistsettings::getHTTPHeaderSelector(&httpheader) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::HTTPPath(httppath) => { - match dnsdistsettings::getHTTPPathSelector(&httppath) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::HTTPPathRegex(httppathregex) => { - match dnsdistsettings::getHTTPPathRegexSelector(&httppathregex) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::KeyValueStoreLookup(keyvaluestorelookup) => { - match dnsdistsettings::getKeyValueStoreLookupSelector(&keyvaluestorelookup) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::KeyValueStoreRangeLookup(keyvaluestorerangelookup) => { - match dnsdistsettings::getKeyValueStoreRangeLookupSelector(&keyvaluestorerangelookup) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::Lua(lua) => { - match dnsdistsettings::getLuaSelector(&lua) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::LuaFFI(luaffi) => { - match dnsdistsettings::getLuaFFISelector(&luaffi) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::LuaFFIPerThread(luaffiperthread) => { - match dnsdistsettings::getLuaFFIPerThreadSelector(&luaffiperthread) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::MaxQPS(maxqps) => { - match dnsdistsettings::getMaxQPSSelector(&maxqps) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::MaxQPSIP(maxqpsip) => { - match dnsdistsettings::getMaxQPSIPSelector(&maxqpsip) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::NetmaskGroup(netmaskgroup) => { - match dnsdistsettings::getNetmaskGroupSelector(&netmaskgroup) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::Not(not) => { - let mut config: dnsdistsettings::NotSelectorConfiguration = Default::default(); - match get_one_selector_from_serde(&*not.selector) { - Ok(sel) => config.selector = sel, - Err(e) => return Err(e), - } - match dnsdistsettings::getNotSelector(&config) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::Opcode(opcode) => { - match dnsdistsettings::getOpcodeSelector(&opcode) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::Or(or) => { - let mut config: dnsdistsettings::OrSelectorConfiguration = Default::default(); - for sub_selector in &or.selectors { - config.selectors.push(get_one_selector_from_serde(&sub_selector)?) - } - return Ok(dnsdistsettings::SharedDNSSelector { - selector: dnsdistsettings::getOrSelector(&config)? - }) - } - Selector::PayloadSize(payloadsize) => { - match dnsdistsettings::getPayloadSizeSelector(&payloadsize) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::PoolAvailable(poolavailable) => { - match dnsdistsettings::getPoolAvailableSelector(&poolavailable) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::PoolOutstanding(pooloutstanding) => { - match dnsdistsettings::getPoolOutstandingSelector(&pooloutstanding) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::Proba(proba) => { - match dnsdistsettings::getProbaSelector(&proba) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::ProxyProtocolValue(proxyprotocolvalue) => { - match dnsdistsettings::getProxyProtocolValueSelector(&proxyprotocolvalue) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::QClass(qclass) => { - match dnsdistsettings::getQClassSelector(&qclass) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::QName(qname) => { - match dnsdistsettings::getQNameSelector(&qname) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::QNameLabelsCount(qnamelabelscount) => { - match dnsdistsettings::getQNameLabelsCountSelector(&qnamelabelscount) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::QNameSet(qnameset) => { - match dnsdistsettings::getQNameSetSelector(&qnameset) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::QNameSuffix(qnamesuffix) => { - match dnsdistsettings::getQNameSuffixSelector(&qnamesuffix) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::QNameWireLength(qnamewirelength) => { - match dnsdistsettings::getQNameWireLengthSelector(&qnamewirelength) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::QType(qtype) => { - match dnsdistsettings::getQTypeSelector(&qtype) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::RCode(rcode) => { - match dnsdistsettings::getRCodeSelector(&rcode) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::RD(rd) => { - match dnsdistsettings::getRDSelector(&rd) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::RE2(re2) => { - match dnsdistsettings::getRE2Selector(&re2) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::RecordsCount(recordscount) => { - match dnsdistsettings::getRecordsCountSelector(&recordscount) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::RecordsTypeCount(recordstypecount) => { - match dnsdistsettings::getRecordsTypeCountSelector(&recordstypecount) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::Regex(regex) => { - match dnsdistsettings::getRegexSelector(®ex) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::SNI(sni) => { - match dnsdistsettings::getSNISelector(&sni) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::Tag(tag) => { - match dnsdistsettings::getTagSelector(&tag) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::TCP(tcp) => { - match dnsdistsettings::getTCPSelector(&tcp) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - Selector::TrailingData(trailingdata) => { - match dnsdistsettings::getTrailingDataSelector(&trailingdata) { - Ok(sel) => return Ok(dnsdistsettings::SharedDNSSelector { - selector: sel, - }), - Err(e) => return Err(e), - } - } - } - panic!("No selector") -} -// START INCLUDE rust-post-in.rs -fn get_selectors_from_serde( - selectors_from_serde: &Vec, -) -> Result, cxx::Exception> { - let mut results: Vec = Vec::new(); - - for rule in selectors_from_serde { - results.push(get_one_selector_from_serde(&rule)?) - } - Ok(results) -} - -fn get_query_rules_from_serde( - rules_from_serde: &Vec, -) -> Result, cxx::Exception> { - let mut results: Vec = Vec::new(); - - for rule in rules_from_serde { - let selector = get_one_selector_from_serde(&rule.selector)?; - let action = get_one_action_from_serde(&rule.action)?; - results.push(dnsdistsettings::QueryRuleConfiguration { - name: rule.name.clone(), - uuid: rule.uuid.clone(), - selector: selector, - action: action, - }); - } - Ok(results) -} - -fn get_response_rules_from_serde( - rules_from_serde: &Vec, -) -> Result, cxx::Exception> { - let mut results: Vec = Vec::new(); - - for rule in rules_from_serde { - let selector = get_one_selector_from_serde(&rule.selector)?; - let action = get_one_response_action_from_serde(&rule.action)?; - results.push(dnsdistsettings::ResponseRuleConfiguration { - name: rule.name.clone(), - uuid: rule.uuid.clone(), - selector: selector, - action: action, - }); - } - Ok(results) -} - -fn register_remote_loggers( - config: &dnsdistsettings::RemoteLoggingConfiguration, -) { - for logger in &config.protobuf_loggers { - dnsdistsettings::registerProtobufLogger(&logger); - } - for logger in &config.dnstap_loggers { - dnsdistsettings::registerDnstapLogger(&logger); - } -} - -fn get_global_configuration_from_serde( - serde: GlobalConfigurationSerde, -) -> Result { - let mut config: dnsdistsettings::GlobalConfiguration = Default::default(); - config.key_value_stores = serde.key_value_stores; - config.webserver = serde.webserver; - config.console = serde.console; - config.edns_client_subnet = serde.edns_client_subnet; - config.dynamic_rules_settings = serde.dynamic_rules_settings; - config.dynamic_rules = serde.dynamic_rules; - config.acl = serde.acl; - config.ring_buffers = serde.ring_buffers; - config.binds = serde.binds; - config.backends = serde.backends; - config.cache_settings = serde.cache_settings; - config.security_polling = serde.security_polling; - config.general = serde.general; - config.packet_caches = serde.packet_caches; - config.proxy_protocol = serde.proxy_protocol; - config.snmp = serde.snmp; - config.query_count = serde.query_count; - config.load_balancing_policies = serde.load_balancing_policies; - config.pools = serde.pools; - config.metrics = serde.metrics; - config.remote_logging = serde.remote_logging; - config.tuning = serde.tuning; - // this needs to be done before the rules so that they can refer to the loggers - register_remote_loggers(&config.remote_logging); - // this needs to be done before the rules so that they can refer to the KVS objects - dnsdistsettings::registerKVSObjects(&config.key_value_stores); - // this needs to be done BEFORE the rules so that they can refer to the selectors - // by name - config.selectors = get_selectors_from_serde(&serde.selectors)?; - config.query_rules = get_query_rules_from_serde(&serde.query_rules)?; - config.cache_miss_rules = get_query_rules_from_serde(&serde.cache_miss_rules)?; - config.response_rules = get_response_rules_from_serde(&serde.response_rules)?; - config.cache_hit_response_rules = get_response_rules_from_serde(&serde.cache_hit_response_rules)?; - config.cache_inserted_response_rules = get_response_rules_from_serde(&serde.cache_inserted_response_rules)?; - config.self_answered_response_rules = get_response_rules_from_serde(&serde.self_answered_response_rules)?; - config.xfr_response_rules = get_response_rules_from_serde(&serde.xfr_response_rules)?; - config.timeout_response_rules = get_response_rules_from_serde(&serde.timeout_response_rules)?; - Ok(config) -} - -pub fn from_yaml_string( - str: &str, -) -> Result { - let serde_config: Result = - serde_yaml::from_str(str); - - if let Err(e) = serde_config { - return Err(e.to_string().into()); - } - let serde_config = serde_config.unwrap(); - let validation_result = serde_config.validate(); - if let Err(e) = validation_result { - return Err(e.to_string().into()) - } - match get_global_configuration_from_serde(serde_config) { - Ok(config) => return Ok(config), - Err(e) => return Err(e.to_string().into()), - } -} -// END INCLUDE rust-post-in.rs diff --git a/pdns/dnsdistdist/dnsdist-selectors-factory-generated.cc b/pdns/dnsdistdist/dnsdist-selectors-factory-generated.cc deleted file mode 100644 index 4c41b72390..0000000000 --- a/pdns/dnsdistdist/dnsdist-selectors-factory-generated.cc +++ /dev/null @@ -1,121 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -std::shared_ptr getAllSelector() -{ - return std::make_shared(); -} -std::shared_ptr getDNSSECSelector() -{ - return std::make_shared(); -} -std::shared_ptr getDSTPortSelector(uint16_t port) -{ - return std::make_shared(port); -} -std::shared_ptr getEDNSOptionSelector(uint16_t option_code) -{ - return std::make_shared(option_code); -} -std::shared_ptr getEDNSVersionSelector(uint8_t version) -{ - return std::make_shared(version); -} -std::shared_ptr getERCodeSelector(uint64_t rcode) -{ - return std::make_shared(rcode); -} -std::shared_ptr getHTTPHeaderSelector(const std::string& header, const std::string& expression) -{ - return std::make_shared(header, expression); -} -std::shared_ptr getHTTPPathSelector(const std::string& path) -{ - return std::make_shared(path); -} -std::shared_ptr getHTTPPathRegexSelector(const std::string& expression) -{ - return std::make_shared(expression); -} -std::shared_ptr getLuaFFIPerThreadSelector(const std::string& code) -{ - return std::make_shared(code); -} -std::shared_ptr getMaxQPSSelector(uint32_t qps, std::optional burst) -{ - return std::make_shared(qps, burst ? *burst : 0); -} -std::shared_ptr getMaxQPSIPSelector(uint32_t qps, std::optional ipv4_mask, std::optional ipv6_mask, std::optional burst, std::optional expiration, std::optional cleanup_delay, std::optional scan_fraction, std::optional shards) -{ - return std::make_shared(qps, ipv4_mask ? *ipv4_mask : 32, ipv6_mask ? *ipv6_mask : 64, burst ? *burst : 0, expiration ? *expiration : 300, cleanup_delay ? *cleanup_delay : 60, scan_fraction ? *scan_fraction : 10, shards ? *shards : 10); -} -std::shared_ptr getOpcodeSelector(uint8_t code) -{ - return std::make_shared(code); -} -std::shared_ptr getPayloadSizeSelector(const std::string& comparison, uint16_t size) -{ - return std::make_shared(comparison, size); -} -std::shared_ptr getPoolAvailableSelector(const std::string& pool) -{ - return std::make_shared(pool); -} -std::shared_ptr getPoolOutstandingSelector(const std::string& pool, uint64_t max_outstanding) -{ - return std::make_shared(pool, max_outstanding); -} -std::shared_ptr getProbaSelector(double probability) -{ - return std::make_shared(probability); -} -std::shared_ptr getProxyProtocolValueSelector(uint8_t option_type, std::optional option_value) -{ - return std::make_shared(option_type, option_value ? *option_value : ""); -} -std::shared_ptr getQNameLabelsCountSelector(uint16_t min_labels_count, uint16_t max_labels_count) -{ - return std::make_shared(min_labels_count, max_labels_count); -} -std::shared_ptr getQNameWireLengthSelector(uint16_t min, uint16_t max) -{ - return std::make_shared(min, max); -} -std::shared_ptr getRCodeSelector(uint64_t rcode) -{ - return std::make_shared(rcode); -} -std::shared_ptr getRDSelector() -{ - return std::make_shared(); -} -std::shared_ptr getRE2Selector(const std::string& expression) -{ - return std::make_shared(expression); -} -std::shared_ptr getRecordsCountSelector(uint8_t section, uint16_t minimum, uint16_t maximum) -{ - return std::make_shared(section, minimum, maximum); -} -std::shared_ptr getRecordsTypeCountSelector(uint8_t section, uint16_t record_type, uint16_t minimum, uint16_t maximum) -{ - return std::make_shared(section, record_type, minimum, maximum); -} -std::shared_ptr getRegexSelector(const std::string& expression) -{ - return std::make_shared(expression); -} -std::shared_ptr getSNISelector(const std::string& server_name) -{ - return std::make_shared(server_name); -} -std::shared_ptr getTagSelector(const std::string& tag, std::optional value, std::optional emptyAsWildcard) -{ - return std::make_shared(tag, value ? *value : "", emptyAsWildcard ? *emptyAsWildcard : true); -} -std::shared_ptr getTCPSelector(bool tcp) -{ - return std::make_shared(tcp); -} -std::shared_ptr getTrailingDataSelector() -{ - return std::make_shared(); -} diff --git a/pdns/dnsdistdist/dnsdist-selectors-factory-generated.hh b/pdns/dnsdistdist/dnsdist-selectors-factory-generated.hh deleted file mode 100644 index f4dda50ab0..0000000000 --- a/pdns/dnsdistdist/dnsdist-selectors-factory-generated.hh +++ /dev/null @@ -1,31 +0,0 @@ -// !! This file has been generated by dnsdist-rules-generator.py, do not edit by hand!! -std::shared_ptr getAllSelector(); -std::shared_ptr getDNSSECSelector(); -std::shared_ptr getDSTPortSelector(uint16_t port); -std::shared_ptr getEDNSOptionSelector(uint16_t option_code); -std::shared_ptr getEDNSVersionSelector(uint8_t version); -std::shared_ptr getERCodeSelector(uint64_t rcode); -std::shared_ptr getHTTPHeaderSelector(const std::string& header, const std::string& expression); -std::shared_ptr getHTTPPathSelector(const std::string& path); -std::shared_ptr getHTTPPathRegexSelector(const std::string& expression); -std::shared_ptr getLuaFFIPerThreadSelector(const std::string& code); -std::shared_ptr getMaxQPSSelector(uint32_t qps, std::optional burst); -std::shared_ptr getMaxQPSIPSelector(uint32_t qps, std::optional ipv4_mask, std::optional ipv6_mask, std::optional burst, std::optional expiration, std::optional cleanup_delay, std::optional scan_fraction, std::optional shards); -std::shared_ptr getOpcodeSelector(uint8_t code); -std::shared_ptr getPayloadSizeSelector(const std::string& comparison, uint16_t size); -std::shared_ptr getPoolAvailableSelector(const std::string& pool); -std::shared_ptr getPoolOutstandingSelector(const std::string& pool, uint64_t max_outstanding); -std::shared_ptr getProbaSelector(double probability); -std::shared_ptr getProxyProtocolValueSelector(uint8_t option_type, std::optional option_value); -std::shared_ptr getQNameLabelsCountSelector(uint16_t min_labels_count, uint16_t max_labels_count); -std::shared_ptr getQNameWireLengthSelector(uint16_t min, uint16_t max); -std::shared_ptr getRCodeSelector(uint64_t rcode); -std::shared_ptr getRDSelector(); -std::shared_ptr getRE2Selector(const std::string& expression); -std::shared_ptr getRecordsCountSelector(uint8_t section, uint16_t minimum, uint16_t maximum); -std::shared_ptr getRecordsTypeCountSelector(uint8_t section, uint16_t record_type, uint16_t minimum, uint16_t maximum); -std::shared_ptr getRegexSelector(const std::string& expression); -std::shared_ptr getSNISelector(const std::string& server_name); -std::shared_ptr getTagSelector(const std::string& tag, std::optional value, std::optional emptyAsWildcard); -std::shared_ptr getTCPSelector(bool tcp); -std::shared_ptr getTrailingDataSelector();