From: Pieter Lexis Date: Fri, 27 Nov 2020 12:23:05 +0000 (+0100) Subject: dnsdist: Drop second argument in `SpoofAction` X-Git-Tag: rec-4.5.0-alpha1~99^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0d361251a54ce63abbf032531b420aa73862b7fd;p=thirdparty%2Fpdns.git dnsdist: Drop second argument in `SpoofAction` Fixes #9783 --- diff --git a/pdns/dnsdist-lua-actions.cc b/pdns/dnsdist-lua-actions.cc index 9ea2eedefd..29f1f2045a 100644 --- a/pdns/dnsdist-lua-actions.cc +++ b/pdns/dnsdist-lua-actions.cc @@ -1604,7 +1604,7 @@ void setupLuaActions(LuaContext& luaCtx) return std::shared_ptr(new QPSPoolAction(limit, a)); }); - luaCtx.writeFunction("SpoofAction", [](boost::variant>> inp, boost::optional b, boost::optional vars) { + luaCtx.writeFunction("SpoofAction", [](boost::variant>> inp, boost::optional vars) { vector addrs; if(auto s = boost::get(&inp)) addrs.push_back(ComboAddress(*s)); @@ -1613,9 +1613,6 @@ void setupLuaActions(LuaContext& luaCtx) for(const auto& a: v) addrs.push_back(ComboAddress(a.second)); } - if(b) { - addrs.push_back(ComboAddress(*b)); - } auto ret = std::shared_ptr(new SpoofAction(addrs)); auto sa = std::dynamic_pointer_cast(ret); diff --git a/pdns/dnsdistdist/docs/rules-actions.rst b/pdns/dnsdistdist/docs/rules-actions.rst index 05a6084e44..3ab1e3c6a2 100644 --- a/pdns/dnsdistdist/docs/rules-actions.rst +++ b/pdns/dnsdistdist/docs/rules-actions.rst @@ -1356,6 +1356,9 @@ The following actions exist. .. versionchanged:: 1.5.0 Added the optional parameter ``options``. + .. versionchanged:: 1.6.0 + Up to 1.6.0, the syntax for this function was ``SpoofAction(ips[, ip[, options]]). + Forge a response with the specified IPv4 (for an A query) or IPv6 (for an AAAA) addresses. If you specify multiple addresses, all that match the query type (A, AAAA or ANY) will get spoofed in. diff --git a/regression-tests.dnsdist/test_Spoofing.py b/regression-tests.dnsdist/test_Spoofing.py index fa81ccf263..d8ce626f03 100644 --- a/regression-tests.dnsdist/test_Spoofing.py +++ b/regression-tests.dnsdist/test_Spoofing.py @@ -5,11 +5,11 @@ from dnsdisttests import DNSDistTest class TestSpoofingSpoof(DNSDistTest): _config_template = """ - addAction(makeRule("spoofaction.spoofing.tests.powerdns.com."), SpoofAction("192.0.2.1", "2001:DB8::1")) - addAction(makeRule("spoofaction-aa.spoofing.tests.powerdns.com."), SpoofAction("192.0.2.1", "2001:DB8::1", {aa=true})) - addAction(makeRule("spoofaction-ad.spoofing.tests.powerdns.com."), SpoofAction("192.0.2.1", "2001:DB8::1", {ad=true})) - addAction(makeRule("spoofaction-ra.spoofing.tests.powerdns.com."), SpoofAction("192.0.2.1", "2001:DB8::1", {ra=true})) - addAction(makeRule("spoofaction-nora.spoofing.tests.powerdns.com."), SpoofAction("192.0.2.1", "2001:DB8::1", {ra=false})) + addAction(makeRule("spoofaction.spoofing.tests.powerdns.com."), SpoofAction({"192.0.2.1", "2001:DB8::1"})) + addAction(makeRule("spoofaction-aa.spoofing.tests.powerdns.com."), SpoofAction({"192.0.2.1", "2001:DB8::1"}, {aa=true})) + addAction(makeRule("spoofaction-ad.spoofing.tests.powerdns.com."), SpoofAction({"192.0.2.1", "2001:DB8::1"}, {ad=true})) + addAction(makeRule("spoofaction-ra.spoofing.tests.powerdns.com."), SpoofAction({"192.0.2.1", "2001:DB8::1"}, {ra=true})) + addAction(makeRule("spoofaction-nora.spoofing.tests.powerdns.com."), SpoofAction({"192.0.2.1", "2001:DB8::1"}, {ra=false})) addAction(makeRule("cnamespoofaction.spoofing.tests.powerdns.com."), SpoofCNAMEAction("cnameaction.spoofing.tests.powerdns.com.")) addAction("multispoof.spoofing.tests.powerdns.com", SpoofAction({"192.0.2.1", "192.0.2.2", "2001:DB8::1", "2001:DB8::2"})) addAction(AndRule{makeRule("raw.spoofing.tests.powerdns.com"), QTypeRule(DNSQType.A)}, SpoofRawAction("\\192\\000\\002\\001"))