Mercurial > prosody-modules
comparison mod_firewall/mod_firewall.lua @ 2539:1510b66a43fc
mod_firewall: Allow using spaces instead of underscores in actions, as well as conditions
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 21 Feb 2017 10:38:14 +0000 |
| parents | a1b6a6b0aabb |
| children | 3c16f0a8d66c |
comparison
equal
deleted
inserted
replaced
| 2538:a1b6a6b0aabb | 2539:1510b66a43fc |
|---|---|
| 364 | 364 |
| 365 if not active_definitions[what] then | 365 if not active_definitions[what] then |
| 366 active_definitions[what] = {}; | 366 active_definitions[what] = {}; |
| 367 end | 367 end |
| 368 active_definitions[what][name] = ret; | 368 active_definitions[what][name] = ret; |
| 369 elseif line:find("^[^%s:]+[%.=]") then | 369 elseif line:find("^[%w_ ]+[%.=]") then |
| 370 -- Action | 370 -- Action |
| 371 if state == nil then | 371 if state == nil then |
| 372 -- This is a standalone action with no conditions | 372 -- This is a standalone action with no conditions |
| 373 rule = new_rule(ruleset, chain); | 373 rule = new_rule(ruleset, chain); |
| 374 end | 374 end |
| 375 state = "actions"; | 375 state = "actions"; |
| 376 -- Action handlers? | 376 -- Action handlers? |
| 377 local action = line:match("^[%w_]+"); | 377 local action = line:match("^[%w_ ]+"):upper():gsub(" ", "_"); |
| 378 if not action_handlers[action] then | 378 if not action_handlers[action] then |
| 379 return nil, ("Unknown action on line %d: %s"):format(line_no, action or "<unknown>"); | 379 return nil, ("Unknown action on line %d: %s"):format(line_no, action or "<unknown>"); |
| 380 end | 380 end |
| 381 table.insert(rule.actions, "-- "..line) | 381 table.insert(rule.actions, "-- "..line) |
| 382 local ok, action_string, action_deps = pcall(action_handlers[action], line:match("=(.+)$")); | 382 local ok, action_string, action_deps = pcall(action_handlers[action], line:match("=(.+)$")); |
