diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2021-09-21 15:24:59 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2021-09-21 21:29:55 +0300 |
commit | 97f35076774635f02360c5389ab6eb32043d5ee2 (patch) | |
tree | c4567fc1dbfc4ee7f196d00f5cc6fad67c6623d1 | |
parent | d34e447b684a3f29ea81a1304272c6837d11cffb (diff) |
family.identify: accept DNS name starting with digitv1.9.21.9-stable
fixes #9648
-rw-r--r-- | awall/family.lua | 14 | ||||
-rw-r--r-- | awall/host.lua | 4 |
2 files changed, 8 insertions, 10 deletions
diff --git a/awall/family.lua b/awall/family.lua index 9762b71..eee5f30 100644 --- a/awall/family.lua +++ b/awall/family.lua @@ -1,14 +1,10 @@ --[[ Address family module for Alpine Wall -Copyright (C) 2012-2020 Kaarle Ritvanen +Copyright (C) 2012-2021 Kaarle Ritvanen See LICENSE file for license details ]]-- -local M = { - ACTIVE={}, - ALL={}, - PATTERNS={domain='[%a-][%.%w-]*', inet='%d[%.%d/-]+', inet6='[:%x/-]+'} -} +local M = {ACTIVE={}, ALL={}, DOMAIN_PATTERN='[%.%w-]+'} local stat = require('posix').stat @@ -18,8 +14,10 @@ for family, procfile in pairs{inet='raw', inet6='raw6'} do end function M.identify(addr, context) - for k, v in pairs(M.PATTERNS) do - if addr:match('^'..v..'$') then return k end + for _, pattern in ipairs{ + {'inet', '[%.%d/-]+'}, {'domain', M.DOMAIN_PATTERN}, {'inet6', '[:%x/-]+'} + } do + if addr:match('^'..pattern[2]..'$') then return pattern[1] end end context:error('Malformed host specification: '..addr) end diff --git a/awall/host.lua b/awall/host.lua index 55254d4..129cbeb 100644 --- a/awall/host.lua +++ b/awall/host.lua @@ -1,6 +1,6 @@ --[[ Host address resolver for Alpine Wall -Copyright (C) 2012-2020 Kaarle Ritvanen +Copyright (C) 2012-2021 Kaarle Ritvanen See LICENSE file for license details ]]-- @@ -33,7 +33,7 @@ function M.resolve(list, context, allow) if answer then if rec == '' then break end local addr = rec:match( - '^'..family.PATTERNS.domain..'%s+%d+%s+IN%s+'..rtype.. + '^'..family.DOMAIN_PATTERN..'%s+%d+%s+IN%s+'..rtype.. '%s+(.+)' ) if addr then |