From 6bb92a0689745901a92c6a476144caea94568688 Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Tue, 7 Aug 2018 15:45:00 +0200 Subject: [PATCH] add EDNSOptionCode table --- pdns/dnsdist-lua-vars.cc | 14 +++++++++++++ pdns/dnsdistdist/docs/reference/constants.rst | 20 +++++++++++++++++++ pdns/dnsdistdist/docs/rules-actions.rst | 2 +- regression-tests.dnsdist/test_Advanced.py | 2 +- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/pdns/dnsdist-lua-vars.cc b/pdns/dnsdist-lua-vars.cc index 77b37fb77b..5f3a980410 100644 --- a/pdns/dnsdist-lua-vars.cc +++ b/pdns/dnsdist-lua-vars.cc @@ -69,6 +69,20 @@ void setupLuaVars() {"Additional",3 } }); + g_lua.writeVariable("EDNSOptionCode", std::unordered_map{ + {"NSID", 3 }, + {"DAU", 5 }, + {"DHU", 6 }, + {"N3U", 7 }, + {"ECS", 8 }, + {"EXPIRE", 9 }, + {"COOKIE", 10 }, + {"TCPKEEPALIVE", 11 }, + {"PADDING", 12 }, + {"CHAIN", 13 }, + {"KEYTAG", 14 } + }); + vector > rcodes = {{"NOERROR", RCode::NoError }, {"FORMERR", RCode::FormErr }, {"SERVFAIL", RCode::ServFail }, diff --git a/pdns/dnsdistdist/docs/reference/constants.rst b/pdns/dnsdistdist/docs/reference/constants.rst index 981655d0a9..1476639398 100644 --- a/pdns/dnsdistdist/docs/reference/constants.rst +++ b/pdns/dnsdistdist/docs/reference/constants.rst @@ -58,6 +58,26 @@ RCodes below and including ``BADVERS`` are extended RCodes that can only be matc Reference: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6 + +.. _EDNSOptionCode: + +EDNSOptionCode +-------------- + +- ``EDNSOptionCode.DHU`` +- ``EDNSOptionCode.ECS`` +- ``EDNSOptionCode.N3U`` +- ``EDNSOptionCode.DAU`` +- ``EDNSOptionCode.TCPKEEPALIVE`` +- ``EDNSOptionCode.COOKIE`` +- ``EDNSOptionCode.PADDING`` +- ``EDNSOptionCode.KEYTAG`` +- ``EDNSOptionCode.NSID`` +- ``EDNSOptionCode.CHAIN`` +- ``EDNSOptionCode.EXPIRE`` + +Reference: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-11 + .. _DNSSection: DNS Section diff --git a/pdns/dnsdistdist/docs/rules-actions.rst b/pdns/dnsdistdist/docs/rules-actions.rst index ff0bc8a127..1d9aa3fd94 100644 --- a/pdns/dnsdistdist/docs/rules-actions.rst +++ b/pdns/dnsdistdist/docs/rules-actions.rst @@ -643,7 +643,7 @@ These ``DNSRule``\ s be one of the following items: .. versionadded:: 1.4.0 Matches queries or responses with the specified EDNS option present. - ``optcode`` is specified as an integer. + ``optcode`` is specified as an integer, or a constant such as `EDNSOptionCode.ECS`. .. function:: RDRule() diff --git a/regression-tests.dnsdist/test_Advanced.py b/regression-tests.dnsdist/test_Advanced.py index 5dc77afe42..d04a445173 100644 --- a/regression-tests.dnsdist/test_Advanced.py +++ b/regression-tests.dnsdist/test_Advanced.py @@ -1628,7 +1628,7 @@ class TestAdvancedEDNSOptionRule(DNSDistTest): _config_template = """ newServer{address="127.0.0.1:%s"} - addAction(EDNSOptionRule(8), DropAction()) + addAction(EDNSOptionRule(EDNSOptionCode.ECS), DropAction()) """ def testDropped(self): -- 2.47.3