"addDisableValidationRule(", "addDNSCryptBind(", "addDomainBlock(",
"addDomainSpoof(", "addDynBlocks(", "addLocal(", "addLuaAction(",
"addNoRecurseRule(", "addPoolRule(", "addQPSLimit(", "addQPSPoolRule(",
- "AllRule(", "AndRule(",
+ "AllowAction(", "AllRule(", "AndRule(",
"benchRule(",
"carbonServer(", "controlSocket(", "clearDynBlocks()",
"DelayAction(", "delta()", "DisableValidationAction(", "DropAction(",
return std::shared_ptr<DNSAction>(new DropAction);
});
+ g_lua.writeFunction("AllowAction", []() {
+ return std::shared_ptr<DNSAction>(new AllowAction);
+ });
+
g_lua.writeFunction("DelayAction", [](int msec) {
return std::shared_ptr<DNSAction>(new DelayAction(msec));
});
}
};
+class AllowAction : public DNSAction
+{
+public:
+ DNSAction::Action operator()(const ComboAddress& remote, const DNSName& qname, uint16_t qtype, dnsheader* dh, uint16_t& len, uint16_t bufferSize, string* ruleresult) const override
+ {
+ return Action::Allow;
+ }
+ string toString() const override
+ {
+ return "allow";
+ }
+};
+
class QPSAction : public DNSAction
{