Skip to content
Snippets Groups Projects
Commit dde426bf authored by Oto Šťáva's avatar Oto Šťáva
Browse files

modules/policy: add 'domain' filter for equality matching

parent e81d0e3c
Branches
Tags
1 merge request!1228modules/policy: add 'domain' filter for equality matching
......@@ -28,6 +28,16 @@ A *filter* selects which queries will be affected by specified Actions_. There a
Always applies the action.
.. function:: domain(action, domain)
Applies the action if query name matches the provided domain name.
.. note:: For speed this filter requires a domain name in DNS wire format, not textual representation, so each label in the name must be prefixed with its length. Always use convenience function :func:`todname` for automatic conversion from a string! For example:
.. code-block:: lua
policy.domain(policy.DENY, todname('example.com'))
.. function:: pattern(action, pattern)
Applies the action if query name matches a `Lua regular expression <http://lua-users.org/wiki/PatternsTutorial>`_.
......
......@@ -344,7 +344,17 @@ function policy.all(action)
return function(_, _) return action end
end
-- Requests which QNAME matches given zone list (i.e. suffix match)
-- Requests whose QNAME is exactly the provided domain
function policy.domain(action, dname)
return function(_, query)
if query:name() == dname then
return action
end
return nil
end
end
-- Requests whose QNAME matches given zone list (i.e. suffix match)
function policy.suffix(action, zone_list)
local AC = require('ahocorasick')
local tree = AC.create(zone_list)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment