From: Peter van Dijk Date: Wed, 10 Apr 2019 20:03:15 +0000 (+0200) Subject: move rcodes and qtypes to their own namespace; add fallback and deprecate it X-Git-Tag: dnsdist-1.4.0-alpha1~3^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6ee4616866c7bf1bac682be1ab0be838fbc12e96;p=pdns move rcodes and qtypes to their own namespace; add fallback and deprecate it --- diff --git a/pdns/dnsdist-lua-vars.cc b/pdns/dnsdist-lua-vars.cc index 9cf840093..b912cda51 100644 --- a/pdns/dnsdist-lua-vars.cc +++ b/pdns/dnsdist-lua-vars.cc @@ -87,33 +87,54 @@ void setupLuaVars() {"KEYTAG", EDNSOptionCode::KEYTAG } }); - vector > rcodes = {{"NOERROR", RCode::NoError }, - {"FORMERR", RCode::FormErr }, - {"SERVFAIL", RCode::ServFail }, - {"NXDOMAIN", RCode::NXDomain }, - {"NOTIMP", RCode::NotImp }, - {"REFUSED", RCode::Refused }, - {"YXDOMAIN", RCode::YXDomain }, - {"YXRRSET", RCode::YXRRSet }, - {"NXRRSET", RCode::NXRRSet }, - {"NOTAUTH", RCode::NotAuth }, - {"NOTZONE", RCode::NotZone }, - {"BADVERS", ERCode::BADVERS }, - {"BADSIG", ERCode::BADSIG }, - {"BADKEY", ERCode::BADKEY }, - {"BADTIME", ERCode::BADTIME }, - {"BADMODE", ERCode::BADMODE }, - {"BADNAME", ERCode::BADNAME }, - {"BADALG", ERCode::BADALG }, - {"BADTRUNC", ERCode::BADTRUNC }, - {"BADCOOKIE",ERCode::BADCOOKIE }, - }; + g_lua.writeVariable("DNSRCode", std::unordered_map{ + {"NOERROR", RCode::NoError }, + {"FORMERR", RCode::FormErr }, + {"SERVFAIL", RCode::ServFail }, + {"NXDOMAIN", RCode::NXDomain }, + {"NOTIMP", RCode::NotImp }, + {"REFUSED", RCode::Refused }, + {"YXDOMAIN", RCode::YXDomain }, + {"YXRRSET", RCode::YXRRSet }, + {"NXRRSET", RCode::NXRRSet }, + {"NOTAUTH", RCode::NotAuth }, + {"NOTZONE", RCode::NotZone }, + {"BADVERS", ERCode::BADVERS }, + {"BADSIG", ERCode::BADSIG }, + {"BADKEY", ERCode::BADKEY }, + {"BADTIME", ERCode::BADTIME }, + {"BADMODE", ERCode::BADMODE }, + {"BADNAME", ERCode::BADNAME }, + {"BADALG", ERCode::BADALG }, + {"BADTRUNC", ERCode::BADTRUNC }, + {"BADCOOKIE",ERCode::BADCOOKIE } + }); + vector > dd; for(const auto& n : QType::names) dd.push_back({n.first, n.second}); - for(const auto& n : rcodes) - dd.push_back({n.first, n.second}); - g_lua.writeVariable("dnsdist", dd); + g_lua.writeVariable("DNSQType", dd); + + g_lua.executeCode(R"LUA( + local tables = { + DNSQType = DNSQType, + DNSRCode = DNSRCode + } + local function index (table, key) + for tname,t in pairs(tables) + do + local val = t[key] + if val then + warnlog(string.format("access to dnsdist.%s is deprecated, please use %s.%s", key, tname, key)) + return val + end + end + end + + dnsdist = {} + setmetatable(dnsdist, { __index = index }) + )LUA" + ); #ifdef HAVE_DNSCRYPT g_lua.writeVariable("DNSCryptExchangeVersion", std::unordered_map{