From: Remi Gacogne Date: Mon, 7 Dec 2020 12:32:17 +0000 (+0100) Subject: rec: Preserve compatibility with Lua scripts using the 'Bogus' state X-Git-Tag: rec-4.5.0-alpha1~77^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d0f22f5afa31fea4d65deed756850c0a8601f582;p=thirdparty%2Fpdns.git rec: Preserve compatibility with Lua scripts using the 'Bogus' state --- diff --git a/pdns/lua-recursor4.cc b/pdns/lua-recursor4.cc index a39bf0c60f..9f0d5cc8c5 100644 --- a/pdns/lua-recursor4.cc +++ b/pdns/lua-recursor4.cc @@ -158,7 +158,8 @@ void RecursorLua4::postPrepareContext() d_lw->registerMember("isTcp", [](const DNSQuestion& dq) -> bool { return dq.isTcp; }, [](DNSQuestion& dq, bool newTcp) { (void) newTcp; }); d_lw->registerMember("localaddr", [](const DNSQuestion& dq) -> const ComboAddress& { return dq.local; }, [](DNSQuestion& dq, const ComboAddress& newLocal) { (void) newLocal; }); d_lw->registerMember("remoteaddr", [](const DNSQuestion& dq) -> const ComboAddress& { return dq.remote; }, [](DNSQuestion& dq, const ComboAddress& newRemote) { (void) newRemote; }); - d_lw->registerMember("validationState", [](const DNSQuestion& dq) -> vState { return dq.validationState; }, [](DNSQuestion& dq, vState newState) { (void) newState; }); + d_lw->registerMember("validationState", [](const DNSQuestion& dq) -> uint8_t { return (vStateIsBogus(dq.validationState) ? /* in order not to break older scripts */ static_cast(255) : static_cast(dq.validationState)); }, [](DNSQuestion& dq, uint8_t newState) { (void) newState; }); + d_lw->registerMember("detailedValidationState", [](const DNSQuestion& dq) -> vState { return dq.validationState; }, [](DNSQuestion& dq, vState newState) { (void) newState; }); d_lw->registerMember("variable", [](const DNSQuestion& dq) -> bool { return dq.variable; }, [](DNSQuestion& dq, bool newVariable) { dq.variable = newVariable; }); d_lw->registerMember("wantsRPZ", [](const DNSQuestion& dq) -> bool { return dq.wantsRPZ; }, [](DNSQuestion& dq, bool newWantsRPZ) { dq.wantsRPZ = newWantsRPZ; }); @@ -388,6 +389,8 @@ void RecursorLua4::postPrepareContext() {"BogusInvalidDNSKEYProtocol", static_cast(vState::BogusInvalidDNSKEYProtocol)}, {"Insecure", static_cast(vState::Insecure) }, {"Secure", static_cast(vState::Secure) }, + /* in order not to break compatibility with older scripts: */ + {"Bogus", static_cast(255) }, }}); d_pd.push_back({"now", &g_now});