.. versionchanged:: 1.7.0
This visitor function can now optionally return an additional string which will be set as the ``reason`` for the dynamic block.
- Set a Lua visitor function that will be called for each label of every domain seen in queries and responses. The function receives a `StatNode` object representing the stats of the parent, a second one with the stats of the current label and one with the stats of the current node plus all its children.
+ Set a Lua visitor function that will be called for each label of every domain seen in queries and responses. The function receives a :class:`StatNode` object representing the stats of the parent, a :class:`StatNodeStats` one with the stats of the current label and a second :class:`StatNodeStats` with the stats of the current node plus all its children.
Note that this function will not be called if a FFI version has been set using :meth:`DynBlockRulesGroup:setSuffixMatchRuleFFI`
If the function returns true, the current label will be blocked according to the `seconds`, `reason`, `blockingTime` and `action` parameters. Since 1.7.0, the function can return an additional string, in addition to the boolean, which will be set as the ``reason`` for the dynamic block.
Selected domains can be excluded from this processing using the :meth:`DynBlockRulesGroup:excludeDomains` method.
.. class:: StatNode
- Represent metrics about a given node, for the visitor functions used with :meth:`DynBlockRulesGroup:setSuffixMatchRule` and :meth:`DynBlockRulesGroup:setSuffixMatchRuleFFI`. Note that some nodes includes the metrics for their children as well as their own.
-
- .. attribute:: StatNode.bytes
-
- The number of bytes for all responses returned for that node.
-
- .. attribute:: StatNode.drops
-
- The number of drops for that node.
+ Represent a given node, for the visitor functions used with :meth:`DynBlockRulesGroup:setSuffixMatchRule` and :meth:`DynBlockRulesGroup:setSuffixMatchRuleFFI`.
.. attribute:: StatNode.fullname
The number of labels in that node, for example 3 for 'www.powerdns.com'.
- .. attribute:: StatNode.noerrors
+ .. method:: StatNode:numChildren
+
+ The number of children of that node.
+
+.. class:: StatNodeStats
+
+ Represent the metrics for a given node, for the visitor functions used with :meth:`DynBlockRulesGroup:setSuffixMatchRule` and :meth:`DynBlockRulesGroup:setSuffixMatchRuleFFI`.
+
+ .. attribute:: StatNodeStats.bytes
+
+ The number of bytes for all responses returned for that node.
+
+ .. attribute:: StatNodeStats.drops
+
+ The number of drops for that node.
+
+ .. attribute:: StatNodeStats.noerrors
The number of No Error answers returned for that node.
- .. attribute:: StatNode.nxdomains
+ .. attribute:: StatNodeStats.nxdomains
The number of NXDomain answers returned for that node.
- .. attribute:: StatNode.queries
+ .. attribute:: StatNodeStats.queries
The number of queries for that node.
- .. attribute:: StatNode.servfails
+ .. attribute:: StatNodeStats.servfails
The number of Server Failure answers returned for that node.
- .. method:: StatNode:numChildren
-
- The number of children of that node.
-
SuffixMatchNode
~~~~~~~~~~~~~~~