luaCtx.writeFunction("SpoofRawAction", [](LuaTypeOrArrayOf<std::string> inp, boost::optional<responseParams_t> vars) {
vector<string> raws;
- if (auto str = boost::get<std::string>(&inp)) {
+ if (const auto* str = boost::get<std::string>(&inp)) {
raws.push_back(*str);
} else {
const auto& vect = boost::get<LuaArray<std::string>>(inp);
- for(const auto& raw: vect) {
+ for (const auto& raw: vect) {
raws.push_back(raw.second);
}
}
return true;
});
- luaCtx.registerFunction<void(DNSQuestion::*)(const boost::variant<LuaArray<ComboAddress>, LuaArray<std::string>>&, boost::optional<uint16_t>)>("spoof", [](DNSQuestion& dq, const boost::variant<LuaArray<ComboAddress>, LuaArray<std::string>>& response, boost::optional<uint16_t> typeForAny) {
+ luaCtx.registerFunction<void(DNSQuestion::*)(const boost::variant<LuaArray<ComboAddress>, LuaArray<std::string>>&, boost::optional<uint16_t>)>("spoof", [](DNSQuestion& dnsQuestion, const boost::variant<LuaArray<ComboAddress>, LuaArray<std::string>>& response, boost::optional<uint16_t> typeForAny) {
if (response.type() == typeid(LuaArray<ComboAddress>)) {
std::vector<ComboAddress> data;
auto responses = boost::get<LuaArray<ComboAddress>>(response);
data.push_back(resp.second);
}
std::string result;
- SpoofAction sa(data);
- sa(&dq, &result);
+ SpoofAction tempSpoofAction(data);
+ tempSpoofAction(&dnsQuestion, &result);
return;
}
if (response.type() == typeid(LuaArray<std::string>)) {
data.push_back(resp.second);
}
std::string result;
- SpoofAction sa(data, typeForAny ? *typeForAny : std::optional<uint16_t>());
- sa(&dq, &result);
+ SpoofAction tempSpoofAction(data, typeForAny ? *typeForAny : std::optional<uint16_t>());
+ tempSpoofAction(&dnsQuestion, &result);
return;
}
});
if (raw) {
std::vector<std::string> raws;
stringtok(raws, spoofContent, ",");
- SpoofAction sa(raws, std::nullopt);
- sa(&dq, &result);
+ SpoofAction tempSpoofAction(raws, std::nullopt);
+ tempSpoofAction(&dq, &result);
}
else {
std::vector<std::string> addrs;
if (addrs.size() == 1) {
try {
ComboAddress spoofAddr(spoofContent);
- SpoofAction sa({spoofAddr});
- sa(&dq, &result);
+ SpoofAction tempSpoofAction({spoofAddr});
+ tempSpoofAction(&dq, &result);
}
catch(const PDNSException &e) {
DNSName cname(spoofContent);
- SpoofAction sa(cname); // CNAME then
- sa(&dq, &result);
+ SpoofAction tempSpoofAction(cname); // CNAME then
+ tempSpoofAction(&dq, &result);
}
} else {
std::vector<ComboAddress> cas;
catch (...) {
}
}
- SpoofAction sa(cas);
- sa(&dq, &result);
+ SpoofAction tempSpoofAction(cas);
+ tempSpoofAction(&dq, &result);
}
}
}
{
string result;
- SpoofAction sa(spoofContent.c_str(), spoofContent.size());
- sa(&dq, &result);
+ SpoofAction tempSpoofAction(spoofContent.c_str(), spoofContent.size());
+ tempSpoofAction(&dq, &result);
}
bool processRulesResult(const DNSAction::Action& action, DNSQuestion& dq, std::string& ruleresult, bool& drop)
void dnsdist_ffi_dnsquestion_spoof_packet(dnsdist_ffi_dnsquestion_t* dq, const char* raw, size_t len)
{
std::string result;
- SpoofAction sa(raw, len);
- sa(dq->dq, &result);
+ SpoofAction tempSpoofAction(raw, len);
+ tempSpoofAction(dq->dq, &result);
}
void dnsdist_ffi_dnsquestion_spoof_raw(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_ffi_raw_value_t* values, size_t valuesCount)
}
std::string result;
- SpoofAction sa(data, std::nullopt);
- sa(dq->dq, &result);
+ SpoofAction tempSpoofAction(data, std::nullopt);
+ tempSpoofAction(dq->dq, &result);
}
void dnsdist_ffi_dnsquestion_spoof_addrs(dnsdist_ffi_dnsquestion_t* dq, const dnsdist_ffi_raw_value_t* values, size_t valuesCount)
}
std::string result;
- SpoofAction sa(data);
- sa(dq->dq, &result);
+ SpoofAction tempSpoofAction(data);
+ tempSpoofAction(dq->dq, &result);
}
void dnsdist_ffi_dnsquestion_set_max_returned_ttl(dnsdist_ffi_dnsquestion_t* dq, uint32_t max)