From: Vladimír Čunát Date: Mon, 19 Feb 2024 09:02:55 +0000 (+0100) Subject: datamodel: support interface names with dashes X-Git-Tag: v6.0.7~21^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fenvironments%2Fdocs-develop-inte-3so3h3%2Fdeployments%2F3294;p=thirdparty%2Fknot-resolver.git datamodel: support interface names with dashes Dashes can't be present in normal identifiers in Lua, so we switch to a different syntactic sugar for the same thing. --- diff --git a/NEWS b/NEWS index d4ce40fbe..fbf4e3485 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,11 @@ +Knot Resolver 6.0.7 (2024-0m-dd) +================================ + +Bugfixes +-------- +- fix listening by interface name containing dashes (#900, !1500) + + Knot Resolver 6.0.6 (2024-02-13) ================================ diff --git a/manager/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2 index ff78fbd80..79800f7da 100644 --- a/manager/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2 @@ -31,7 +31,7 @@ net.listen( {%- if interface.addr -%} '{{ interface.addr }}', {%- elif interface.if_name -%} -net.{{ interface.if_name }}, +net['{{ interface.if_name }}'], {%- endif -%} {%- if interface.port -%} {{ interface.port }}, diff --git a/manager/tests/unit/datamodel/templates/test_network_macros.py b/manager/tests/unit/datamodel/templates/test_network_macros.py index 63fcf3731..066463dff 100644 --- a/manager/tests/unit/datamodel/templates/test_network_macros.py +++ b/manager/tests/unit/datamodel/templates/test_network_macros.py @@ -26,10 +26,10 @@ def test_network_listen(): ) intrfc = ListenSchema({"interface": "eth0", "kind": "doh2"}) - assert tmpl.render(listen=intrfc) == "net.listen(net.eth0,443,{kind='doh2',freebind=false})\n" + assert tmpl.render(listen=intrfc) == "net.listen(net['eth0'],443,{kind='doh2',freebind=false})\n" intrfc_list = ListenSchema({"interface": [intrfc.interface.to_std()[0], "lo"], "port": 5555, "kind": "doh2"}) assert ( tmpl.render(listen=intrfc_list) - == "net.listen(net.eth0,5555,{kind='doh2',freebind=false})\n" - + "net.listen(net.lo,5555,{kind='doh2',freebind=false})\n" + == "net.listen(net['eth0'],5555,{kind='doh2',freebind=false})\n" + + "net.listen(net['lo'],5555,{kind='doh2',freebind=false})\n" )