diff options
Diffstat (limited to 'dns/dnsdist/files/patch-dnsdist_configuration_yaml_cc')
-rw-r--r-- | dns/dnsdist/files/patch-dnsdist_configuration_yaml_cc | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/dns/dnsdist/files/patch-dnsdist_configuration_yaml_cc b/dns/dnsdist/files/patch-dnsdist_configuration_yaml_cc deleted file mode 100644 index 910d1807cd26..000000000000 --- a/dns/dnsdist/files/patch-dnsdist_configuration_yaml_cc +++ /dev/null @@ -1,49 +0,0 @@ -From eb01c11a5418da08d5e11acdd519e2816e937835 Mon Sep 17 00:00:00 2001 -From: Remi Gacogne <remi.gacogne@powerdns.com> -Date: Thu, 24 Jul 2025 10:57:28 +0200 -Subject: [PATCH] dnsdist: Fix QType rate dynamic block with YAML - -The YAML configuration for the the "QType rate" dynamic block was -totally broken, trying to configure a rcode rate rule instead of a -qtype rate one. -Thanks to HellSpawn for reporting this the issue! - -Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com> ---- - .../dnsdistdist/dnsdist-configuration-yaml.cc | 14 +++++- - .../dnsdistDynBlockTests.py | 42 ++++++++++++++++ - .../test_DynBlocksGroup.py | 49 +++++++++++++++++++ - 3 files changed, 104 insertions(+), 1 deletion(-) - -diff --git a/pdns/dnsdistdist/dnsdist-configuration-yaml.cc b/pdns/dnsdistdist/dnsdist-configuration-yaml.cc -index 1d0f534b4326..70731bc42537 100644 ---- dnsdist-configuration-yaml.cc -+++ dnsdist-configuration-yaml.cc -@@ -143,6 +143,18 @@ static uint8_t strToRCode(const std::string& context, const std::string& paramet - return *rcode; - } - -+static uint16_t strToQType(const std::string& context, const std::string& parameterName, const ::rust::String& qtype_rust_string) -+{ -+ auto qtype_str = std::string(qtype_rust_string); -+ boost::to_lower(qtype_str); -+ QType qtype; -+ qtype = std::string(qtype_str); -+ if (qtype.getCode() == 0) { -+ return checkedConversionFromStr<uint8_t>(context, parameterName, qtype_rust_string); -+ } -+ return qtype; -+} -+ - static std::optional<std::string> loadContentFromConfigurationFile(const std::string& fileName) - { - /* no check on the file size, don't do this with just any file! */ -@@ -647,7 +659,7 @@ static void loadDynamicBlockConfiguration(const dnsdist::rust::settings::Dynamic - ruleParams.d_tagSettings->d_name = std::string(rule.tag_name); - ruleParams.d_tagSettings->d_value = std::string(rule.tag_value); - } -- dbrgObj->setRCodeRate(checkedConversionFromStr<int>("dynamic-rules.rules.qtype_rate", "qtype", rule.qtype), std::move(ruleParams)); -+ dbrgObj->setQTypeRate(strToQType("dynamic-rules.rules.qtype_rate", "qtype", rule.qtype), std::move(ruleParams)); - } - else if (rule.rule_type == "cache-miss-ratio") { - DynBlockRulesGroup::DynBlockCacheMissRatioRule ruleParams(std::string(rule.comment), rule.action_duration, rule.ratio, rule.warning_ratio, rule.seconds, rule.action.empty() ? DNSAction::Action::None : DNSAction::typeFromString(std::string(rule.action)), rule.minimum_number_of_responses, rule.minimum_global_cache_hit_ratio); |