]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
datamodel: network: added 'doh-legacy' to listen kinds
authorAleš <ales.mrazek@nic.cz>
Mon, 31 Jan 2022 19:48:39 +0000 (20:48 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 8 Apr 2022 14:17:54 +0000 (16:17 +0200)
manager/etc/knot-resolver/config.dev.yml
manager/knot_resolver_manager/datamodel/network_schema.py
manager/knot_resolver_manager/datamodel/templates/macros/network_macros.lua.j2
manager/knot_resolver_manager/datamodel/templates/network.lua.j2
manager/tests/unit/datamodel/test_network_schema.py

index af60a483bd16cd104f267378b695e156650b25ab..6360004a60f77645b68fc9c0e6d89bd5a6872a9a 100644 (file)
@@ -6,7 +6,7 @@ logging:
     - manager
 network:
   listen:
-    - interface: lo@5353
+    - interface: 127.0.0.1@5353
 server:
   workers: 1
   rundir: etc/knot-resolver/runtime
index cff8f2dd43eeb615ca96ff85a42a21745fa4cff6..1cadc9cb70ed541017f64ce1f19d929370ad4ef1 100644 (file)
@@ -14,7 +14,7 @@ from knot_resolver_manager.datamodel.types import (
 )
 from knot_resolver_manager.utils import SchemaNode
 
-KindEnum = Literal["dns", "xdp", "dot", "doh2"]
+KindEnum = Literal["dns", "xdp", "dot", "doh-legacy", "doh2"]
 
 
 class EdnsBufferSizeSchema(SchemaNode):
@@ -80,7 +80,7 @@ class ListenSchema(SchemaNode):
         elif origin.interface:
             if origin.kind == "dot":
                 return PortNumber(853)
-            elif origin.kind == "doh2":
+            elif origin.kind in ["doh-legacy", "doh2"]:
                 return PortNumber(443)
             return PortNumber(53)
         return None
index ce05ff1da5f88371e320484ea30022c64ae1eff5..933ecdfa6ffa4193433794e4e758d25b5c6c5503 100644 (file)
@@ -1,5 +1,23 @@
+{% macro http_config(http_cfg, kind, tls=true) -%}
+http.config({tls={{ 'true' if tls else 'false'}},
+{%- if http_cfg.cert_file -%}
+    cert='{{ http_cfg.cert_file }}',
+{%- endif -%}
+{%- if http_cfg.key_file -%}
+    key='{{ http_cfg.key_file }}',
+{%- endif -%}
+},'{{ kind }}')
+{%- endmacro %}
+
+
 {% macro listen_kind(kind) -%}
-'{{ 'tls' if kind == 'dot' else kind }}'
+{%- if kind == "dot" -%}
+'tls'
+{%- elif kind == "doh-legacy" -%}
+'doh_legacy'
+{%- else -%}
+'{{ kind }}'
+{%- endif -%}
 {%- endmacro %}
 
 
index edcfd1771dd1d1a31ad6e044481d403e0bfca460..9166b76b58bcf9a262b780fa7ec3cc31288a89fa 100644 (file)
@@ -1,4 +1,4 @@
-{% from 'macros/network_macros.lua.j2' import network_listen %}
+{% from 'macros/network_macros.lua.j2' import network_listen, http_config %}
 
 -- network.do-ipv4/6
 net.ipv4 = {{ 'true' if cfg.network.do_ipv4 else 'false' }}
@@ -65,6 +65,12 @@ renumber.config = {
 }
 {% endif %}
 
+{% for listen in cfg.network.listen if listen.kind == "doh-legacy" %}
+-- doh_legacy http config
+modules.load('http')
+{{ http_config(cfg.network.tls,"doh_legacy") }}
+{% endfor %}
+
 -- network.listen
 {% for listen in cfg.network.listen %}
 {{ network_listen(listen) }}
index cadc2168fb0396df40b93269213ff8b8477af3ad..b81fe69f32a9dbebb7ed7b5620dea8e75052845c 100644 (file)
@@ -26,6 +26,7 @@ def test_listen_kind_port_defaults():
     assert ListenSchema({"unix-socket": "/tmp/kresd-socket"}).port == None
     assert ListenSchema({"interface": "::1"}).port == PortNumber(53)
     assert ListenSchema({"interface": "::1", "kind": "dot"}).port == PortNumber(853)
+    assert ListenSchema({"interface": "::1", "kind": "doh-legacy"}).port == PortNumber(443)
     assert ListenSchema({"interface": "::1", "kind": "doh2"}).port == PortNumber(443)