class LuaAction : public DNSAction
{
public:
- typedef std::function<std::tuple<int, boost::optional<string> >(DNSQuestion* dr)> func_t;
+ typedef std::function<std::tuple<int, boost::optional<string> >(DNSQuestion* dq)> func_t;
LuaAction(LuaAction::func_t func) : d_func(func)
{}
Action operator()(DNSQuestion* dq, string* ruleresult) const override;
These constants represent an Action that can be returned from the functions invoked by :func:`addLuaResponseAction`.
- * ``DNSResponseAction.Allow``: let the query pass, skipping other rules
+ * ``DNSResponseAction.Allow``: let the response pass, skipping other rules
* ``DNSResponseAction.Delay``: delay the response for the specified milliseconds (UDP-only), continue to the next rule
- * ``DNSResponseAction.Drop``: drop the query
+ * ``DNSResponseAction.Drop``: drop the response
* ``DNSResponseAction.HeaderModify``: indicate that the query has been turned into a response
* ``DNSResponseAction.None``: continue to the next rule
* ``DNSResponseAction.ServFail``: return a response with a ServFail rcode
This function works similar to using :func:`LuaAction`.
The ``function`` should return both a :ref:`DNSAction` and its argument `rule`. The `rule` is used as an argument
of the following :ref:`DNSAction`: `DNSAction.Spoof`, `DNSAction.Pool` and `DNSAction.Delay`. As of version `1.3.0`, you can
- ommit the argument. For earlier releases, simply return an empty string. If the Lua code fails, ServFail is returned.
+ omit the argument. For earlier releases, simply return an empty string. If the Lua code fails, ServFail is returned.
:param DNSRule: match queries based on this rule
:param string function: the name of a Lua function
::
function luarule(dq)
- if(dq.qtype==35) -- NAPTR
+ if(dq.qtype==dnsdist.NAPTR)
then
return DNSAction.Pool, "abuse" -- send to abuse pool
else
Invoke a Lua function that accepts a :class:`DNSResponse`.
This function works similar to using :func:`LuaResponseAction`.
The ``function`` should return both a :ref:`DNSResponseAction` and its argument `rule`. The `rule` is used as an argument
- of the `DNSResponseAction.Delay`. As of version `1.3.0`, you can ommit the argument (see :func:`addLuaAction`). For earlier
+ of the `DNSResponseAction.Delay`. As of version `1.3.0`, you can omit the argument (see :func:`addLuaAction`). For earlier
releases, simply return an empty string. If the Lua code fails, ServFail is returned.
:param DNSRule: match queries based on this rule
"""
Advanced: Short syntax for LuaAction return values
"""
- name = 'refused.advanced.tests.powerdns.com.'
+ name = 'short.refused.advanced.tests.powerdns.com.'
query = dns.message.make_query(name, 'A', 'IN')
response = dns.message.make_response(query)
rrset = dns.rrset.from_text(name,