]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
datamodel: /local-data/addresses*: use new C API
authorVladimír Čunát <vladimir.cunat@nic.cz>
Thu, 24 Aug 2023 08:08:42 +0000 (10:08 +0200)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Tue, 12 Sep 2023 10:12:55 +0000 (12:12 +0200)
Direct usage without the hints module seems better.

manager/knot_resolver_manager/datamodel/templates/local_data.lua.j2
manager/knot_resolver_manager/datamodel/templates/macros/local_data_macros.lua.j2

index ed9f1d81672aaa83e839f7240f78e8210ccd3ba8..8908a9cdf96c57d382bd87be64ea072ebd5038f0 100644 (file)
@@ -3,14 +3,6 @@
 
 modules = { 'hints > iterate' }
 
-{# nodata #}
-hints.use_nodata({{ boolean(cfg.local_data.nodata) }})
-
-{# ttl #}
-{% if cfg.local_data.ttl -%}
-hints.ttl({{ cfg.local_data.ttl.seconds() }})
-{%- endif %}
-
 {# root-fallback-addresses #}
 {% if cfg.local_data.root_fallback_addresses -%}
 {{ local_data_root_fallback_addresses(cfg.local_data.root_fallback_addresses) }}
@@ -23,12 +15,12 @@ hints.ttl({{ cfg.local_data.ttl.seconds() }})
 
 {# addresses #}
 {% if cfg.local_data.addresses -%}
-{{ local_data_addresses(cfg.local_data.addresses) }}
+{{ local_data_addresses(cfg.local_data.addresses, cfg.local_data.nodata, cfg.local_data.ttl) }}
 {%- endif %}
 
 {# addresses-files #}
 {% if cfg.local_data.addresses_files -%}
-{{ local_data_addresses_files(cfg.local_data.addresses_files) }}
+{{ local_data_addresses_files(cfg.local_data.addresses_files, cfg.local_data.nodata, cfg.local_data.ttl) }}
 {%- endif %}
 
 {# records #}
index c4f2768a65c8104c2c11c264d00d84dd70dcfbd4..5b6081bf35978803374bc1d4f99525b1d4dbbc7c 100644 (file)
@@ -25,18 +25,20 @@ hints.root_file('{{ file }}')
 {%- endif -%}
 {%- endmacro -%}
 
-{% macro local_data_addresses(pairs) -%}
+{% macro local_data_addresses(pairs, nodata, ttl, tags) -%}
 {%- for name, addresses in pairs.items() -%}
 {% for address in addresses %}
-assert(hints.set('{{ name }} {{ address }}').result == true)
+assert(C.kr_rule_local_address('{{ name }}', '{{ address }}',
+       {{ boolean(nodata) }}, {{ local_data_ttl(ttl)}}, {{ policy_get_tagset(tags) }}) == 0)
 {% endfor %}
 {%- endfor -%}
 {%- endmacro %}
 
 
-{% macro local_data_addresses_files(files) -%}
+{% macro local_data_addresses_files(files, nodata, ttl, tags) -%}
 {% for file in files %}
-assert(hints.add_hosts('{{ file }}').result == true)
+assert(C.kr_rule_local_hosts('{{ file }}', {{ boolean(nodata) }},
+       {{ local_data_ttl(ttl)}}, {{ policy_get_tagset(tags) }}) == 0)
 {% endfor %}
 {%- endmacro %}