]> granicus.if.org Git - pdns/commitdiff
Make getServer() return a dummy one in client mode. Closes #2976.
authorRemi Gacogne <rgacogne-github@coredump.fr>
Tue, 1 Dec 2015 17:43:56 +0000 (18:43 +0100)
committerRemi Gacogne <rgacogne-github@coredump.fr>
Tue, 1 Dec 2015 17:45:36 +0000 (18:45 +0100)
pdns/dnsdist-lua.cc

index cfbb251d3a7c8327e29f67ca07118e72596105a8..544838eae6a0bbafa7ea1c6817fc6d80ba0e9c84 100644 (file)
@@ -514,7 +514,11 @@ vector<std::function<void(void)>> setupLua(bool client, const std::string& confi
       return getDownstreamCandidates(g_dstates.getCopy(), pool);
     });
 
-  g_lua.writeFunction("getServer", [](int i) { return g_dstates.getCopy().at(i); });
+  g_lua.writeFunction("getServer", [client](int i) {
+      if (client)
+        return std::make_shared<DownstreamState>(ComboAddress());
+      return g_dstates.getCopy().at(i);
+    });
 
   g_lua.registerFunction<void(DownstreamState::*)(int)>("setQPS", [](DownstreamState& s, int lim) { s.qps = lim ? QPSLimiter(lim, lim) : QPSLimiter(); });
   g_lua.registerFunction<void(DownstreamState::*)(string)>("addPool", [](DownstreamState& s, string pool) { s.pools.insert(pool);});