return result;
});
+ luaCtx.registerFunction<void(DNSQuestion::*)(const std::vector<std::pair<int, ComboAddress>>& responses)>("spoof", [](DNSQuestion& dq, const std::vector<std::pair<int, ComboAddress>>& responses) {
+ std::vector<ComboAddress> cas;
+ cas.reserve(responses.size());
+ for (const auto& addr : responses) {
+ cas.push_back(addr.second);
+ }
+
+ std::string result;
+ SpoofAction sa(cas);
+ sa(&dq, &result);
+ });
+
+ luaCtx.registerFunction<void(DNSQuestion::*)(const std::vector<std::pair<int, std::string>>& responses)>("spoofRaw", [](DNSQuestion& dq, const std::vector<std::pair<int, std::string>>& responses) {
+ std::vector<std::string> data;
+ data.reserve(responses.size());
+ for (const auto& resp : responses) {
+ data.push_back(resp.second);
+ }
+
+ std::string result;
+ SpoofAction sa(data);
+ sa(&dq, &result);
+ });
+
/* LuaWrapper doesn't support inheritance */
luaCtx.registerMember<const ComboAddress (DNSResponse::*)>("localaddr", [](const DNSResponse& dq) -> const ComboAddress { return *dq.local; }, [](DNSResponse& dq, const ComboAddress newLocal) { (void) newLocal; });
luaCtx.registerMember<const DNSName (DNSResponse::*)>("qname", [](const DNSResponse& dq) -> const DNSName { return *dq.qname; }, [](DNSResponse& dq, const DNSName newName) { (void) newName; });
#include <boost/test/unit_test.hpp>
#include "dnsdist.hh"
+#include "dnsdist-lua.hh"
#include "dnsdist-lua-ffi.hh"
#include "dolog.hh"
{
}
+DNSAction::Action SpoofAction::operator()(DNSQuestion* dq, std::string* ruleresult) const
+{
+ return DNSAction::Action::None;
+}
+
string g_outputBuffer;
static DNSQuestion getDQ(const DNSName* providedName = nullptr)