Mercurial > prosody-modules
comparison mod_firewall/mod_firewall.lua @ 2113:d75145297bf9
mod_firewall: Support for defining extra chains in the config file
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 17 Mar 2016 12:09:20 +0000 |
| parents | 41a0a9db89ef |
| children | 5aa3b93cd37a |
comparison
equal
deleted
inserted
replaced
| 2111:4e434abaf8fc | 2113:d75145297bf9 |
|---|---|
| 4 local it = require "util.iterators"; | 4 local it = require "util.iterators"; |
| 5 | 5 |
| 6 local definitions = module:shared("definitions"); | 6 local definitions = module:shared("definitions"); |
| 7 local active_definitions = {}; | 7 local active_definitions = {}; |
| 8 | 8 |
| 9 local chains = { | 9 local default_chains = { |
| 10 preroute = { | 10 preroute = { |
| 11 type = "event"; | 11 type = "event"; |
| 12 priority = 0.1; | 12 priority = 0.1; |
| 13 "pre-message/bare", "pre-message/full", "pre-message/host"; | 13 "pre-message/bare", "pre-message/full", "pre-message/host"; |
| 14 "pre-presence/bare", "pre-presence/full", "pre-presence/host"; | 14 "pre-presence/bare", "pre-presence/full", "pre-presence/host"; |
| 24 deliver_remote = { | 24 deliver_remote = { |
| 25 type = "event"; "route/remote"; | 25 type = "event"; "route/remote"; |
| 26 priority = 0.1; | 26 priority = 0.1; |
| 27 }; | 27 }; |
| 28 }; | 28 }; |
| 29 | |
| 30 local extra_chains = module:get_option("firewall_extra_chains", {}); | |
| 31 | |
| 32 local chains = {}; | |
| 33 for k,v in pairs(default_chains) do | |
| 34 chains[k] = v; | |
| 35 end | |
| 36 for k,v in pairs(extra_chains) do | |
| 37 chains[k] = v; | |
| 38 end | |
| 29 | 39 |
| 30 function idsafe(name) | 40 function idsafe(name) |
| 31 return name:match("^%a[%w_]*$") | 41 return name:match("^%a[%w_]*$") |
| 32 end | 42 end |
| 33 | 43 |
