]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/defer: fix setting price-factor from views
authorLukáš Ondráček <lukas.ondracek@nic.cz>
Wed, 15 Jan 2025 15:20:17 +0000 (16:20 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Sun, 19 Jan 2025 18:40:58 +0000 (19:40 +0100)
modules/policy/policy.lua
python/knot_resolver/datamodel/templates/macros/policy_macros.lua.j2
python/knot_resolver/datamodel/templates/views.lua.j2

index 036e8cf693d126212e369cf6396980e47db8f8a9..41eff2daa689ac41427fe97c99450244f480ea53 100644 (file)
@@ -218,6 +218,13 @@ function policy.FLAGS(opts_set, opts_clear)
        end
 end
 
+-- Set price-factor
+function policy.PRICE_FACTOR16(factor)
+       return function(_, req)
+               ffi.C.defer_set_price_factor16(req, factor)
+       end
+end
+
 local function mkauth_soa(answer, dname, mname, ttl)
        if mname == nil then
                mname = dname
index 347532e6ba7272d44e8e6001e174cfcf6f14254b..94683356723b1be6f83f27b47dde4c48eeaa728d 100644 (file)
@@ -42,6 +42,13 @@ policy.FLAGS({
 {%- endmacro %}
 
 
+{# Price factor #}
+
+{% macro policy_price_factor(factor) -%}
+policy.PRICE_FACTOR16({{ (factor|float * 2**16)|round|int }})
+{%- endmacro %}
+
+
 {# Tags assign #}
 
 {% macro policy_tags_assign(tags) -%}
@@ -276,4 +283,4 @@ policy.todnames({
 {%- endfor -%}
 {%- endif -%}
 })
-{%- endmacro %}
\ No newline at end of file
+{%- endmacro %}
index 0b60223917ca7c5fadb42c11456eaf4f32e533b4..1f27830b37345f7a30c8d139b229d76db9eb64d7 100644 (file)
@@ -1,6 +1,6 @@
 {% from 'macros/common_macros.lua.j2' import quotes %}
 {% from 'macros/view_macros.lua.j2' import get_proto_set, view_flags, view_answer %}
-{% from 'macros/policy_macros.lua.j2' import policy_flags, policy_tags_assign %}
+{% from 'macros/policy_macros.lua.j2' import policy_flags, policy_tags_assign, policy_price_factor %}
 
 {% if cfg.views %}
 {% for view in cfg.views %}
@@ -13,7 +13,7 @@ assert(C.kr_view_insert_action('{{ subnet }}', '{{ view.dst_subnet or '' }}',
        {{ quotes(policy_flags(flags)) }},
 {%- endif %}
 {% if view.options.price_factor|float != 1.0 %}
-       'C.defer_set_price_factor16(req, {{ (view.options.price_factor|float * 2**16)|round|int }})',
+       {{ quotes(policy_price_factor(view.options.price_factor)) }},
 {%- endif %}
 {% if view.tags %}
        {{ policy_tags_assign(view.tags) }},