]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix setRules()
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 18 Mar 2019 13:56:15 +0000 (14:56 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 18 Mar 2019 14:09:53 +0000 (15:09 +0100)
The definition was broken since 4d5959e62e069ca3baf7d52e645211e179de14d1

pdns/dnsdist-lua-rules.cc

index 972d11bb88182637fffeeea3e1be489cfd518be7..4b4114bc7ee8ac8ffd22ea4b647605460e5f8cca 100644 (file)
@@ -251,14 +251,15 @@ void setupLuaRules()
         });
     });
 
-  g_lua.writeFunction("setRules", [](std::vector<DNSDistRuleAction>& newruleactions) {
+  g_lua.writeFunction("setRules", [](const std::vector<std::pair<int, std::shared_ptr<DNSDistRuleAction>>>& newruleactions) {
       setLuaSideEffect();
       g_rulactions.modify([newruleactions](decltype(g_rulactions)::value_type& gruleactions) {
           gruleactions.clear();
-          for (const auto& newruleaction : newruleactions) {
-            if (newruleaction.d_action) {
-              auto rule=makeRule(newruleaction.d_rule);
-              gruleactions.push_back({rule, newruleaction.d_action, newruleaction.d_id});
+          for (const auto& pair : newruleactions) {
+            const auto& newruleaction = pair.second;
+            if (newruleaction->d_action) {
+              auto rule=makeRule(newruleaction->d_rule);
+              gruleactions.push_back({rule, newruleaction->d_action, newruleaction->d_id});
             }
           }
         });