Mercurial > prosody-modules
comparison mod_firewall/mod_firewall.lua @ 2364:17d236129118
mod_firewall: Allow implicit defitions of chains in scripts if they begin with 'user/'
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 15 Nov 2016 14:58:43 +0000 |
parents | 6848297cf40a |
children | 05dae9adf778 |
comparison
equal
deleted
inserted
replaced
2363:12b78170b76c | 2364:17d236129118 |
---|---|
215 state = nil; | 215 state = nil; |
216 elseif not(state) and line:sub(1, 2) == "::" then | 216 elseif not(state) and line:sub(1, 2) == "::" then |
217 chain = line:gsub("^::%s*", ""); | 217 chain = line:gsub("^::%s*", ""); |
218 local chain_info = chains[chain]; | 218 local chain_info = chains[chain]; |
219 if not chain_info then | 219 if not chain_info then |
220 return nil, errmsg("Unknown chain: "..chain); | 220 if chain:match("^user/") then |
221 chains[chain] = { type = "event", priority = 1, "firewall/chains/"..chain }; | |
222 else | |
223 return nil, errmsg("Unknown chain: "..chain); | |
224 end | |
221 elseif chain_info.type ~= "event" then | 225 elseif chain_info.type ~= "event" then |
222 return nil, errmsg("Only event chains supported at the moment"); | 226 return nil, errmsg("Only event chains supported at the moment"); |
223 end | 227 end |
224 ruleset[chain] = ruleset[chain] or {}; | 228 ruleset[chain] = ruleset[chain] or {}; |
225 elseif not(state) and line:sub(1,1) == "%" then -- Definition (zone, limit, etc.) | 229 elseif not(state) and line:sub(1,1) == "%" then -- Definition (zone, limit, etc.) |