]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Drop second argument in `SpoofAction`
authorPieter Lexis <pieter.lexis@powerdns.com>
Fri, 27 Nov 2020 12:23:05 +0000 (13:23 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Fri, 27 Nov 2020 12:23:05 +0000 (13:23 +0100)
Fixes #9783

pdns/dnsdist-lua-actions.cc
pdns/dnsdistdist/docs/rules-actions.rst
regression-tests.dnsdist/test_Spoofing.py

index 9ea2eedefd1d3ab92946c446f1b86f6d99baa313..29f1f2045a05dd1dbc1cb8db6abdf63a11b90773 100644 (file)
@@ -1604,7 +1604,7 @@ void setupLuaActions(LuaContext& luaCtx)
       return std::shared_ptr<DNSAction>(new QPSPoolAction(limit, a));
     });
 
-  luaCtx.writeFunction("SpoofAction", [](boost::variant<std::string,vector<pair<int, std::string>>> inp, boost::optional<std::string> b, boost::optional<responseParams_t> vars) {
+  luaCtx.writeFunction("SpoofAction", [](boost::variant<std::string,vector<pair<int, std::string>>> inp, boost::optional<responseParams_t> vars) {
       vector<ComboAddress> addrs;
       if(auto s = boost::get<std::string>(&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<DNSAction>(new SpoofAction(addrs));
       auto sa = std::dynamic_pointer_cast<SpoofAction>(ret);
index 05a6084e4459ae6c7fad71369b82733a0559706b..3ab1e3c6a2797a12bb8b22947db4c8bb48c61cc4 100644 (file)
@@ -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.
 
index fa81ccf263a8c1edb2196914e2fa9a0dfcf7a3c1..d8ce626f0359375e69e3f4061e93d366fb3e9f0e 100644 (file)
@@ -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"))