From: Peter van Dijk Date: Tue, 7 Aug 2018 13:45:00 +0000 (+0200) Subject: add EDNSOptionCode table X-Git-Tag: dnsdist-1.3.3~168^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6bb92a0689745901a92c6a476144caea94568688;p=thirdparty%2Fpdns.git add EDNSOptionCode table --- 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):