Software /
code /
prosody-modules
Comparison
mod_firewall/mod_firewall.lua @ 2367:3ebd3cb4d7d2
mod_firewall: When compiling on the command-line with -v, ensure chain function names are unique and valid ids
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 15 Nov 2016 15:01:14 +0000 |
parent | 2366:14021c93a962 |
child | 2368:7e1d8c46d788 |
comparison
equal
deleted
inserted
replaced
2366:14021c93a962 | 2367:3ebd3cb4d7d2 |
---|---|
474 if verbose then | 474 if verbose then |
475 print(); | 475 print(); |
476 print("local active_definitions = "..serialize(active_definitions)..";"); | 476 print("local active_definitions = "..serialize(active_definitions)..";"); |
477 print(); | 477 print(); |
478 end | 478 end |
479 local c = 0; | |
479 for chain, handler_code in pairs(chain_functions) do | 480 for chain, handler_code in pairs(chain_functions) do |
481 c = c + 1; | |
480 print("---- Chain "..chain:gsub("_", " ")); | 482 print("---- Chain "..chain:gsub("_", " ")); |
483 local chain_func_name = "chain_"..tostring(c).."_"..chain:gsub("%p", "_"); | |
481 if not verbose then | 484 if not verbose then |
482 print(("%s = %s;"):format(chain, handler_code:sub(8))); | 485 print(("%s = %s;"):format(chain_func_name, handler_code:sub(8))); |
483 else | 486 else |
484 | 487 |
485 print(("local %s = (%s)(active_definitions, fire_event, logger(%q));"):format(chain, handler_code:sub(8), filename)); | 488 print(("local %s = (%s)(active_definitions, fire_event, logger(%q));"):format(chain_func_name, handler_code:sub(8), filename)); |
486 print(); | 489 print(); |
487 | 490 |
488 local chain_definition = chains[chain]; | 491 local chain_definition = chains[chain]; |
489 if chain_definition and chain_definition.type == "event" then | 492 if chain_definition and chain_definition.type == "event" then |
490 for _, event_name in ipairs(chain_definition) do | 493 for _, event_name in ipairs(chain_definition) do |
491 print(("module:hook(%q, %s, %d);"):format(event_name, chain, chain_definition.priority or 0)); | 494 print(("module:hook(%q, %s, %d);"):format(event_name, chain_func_name, chain_definition.priority or 0)); |
492 end | 495 end |
493 end | 496 end |
494 print(("module:hook(%q, %s, %d);"):format("firewall/chains/"..chain, chain, chain_definition.priority or 0)); | 497 print(("module:hook(%q, %s, %d);"):format("firewall/chains/"..chain, chain_func_name, chain_definition.priority or 0)); |
495 end | 498 end |
496 | 499 |
497 print("---- End of chain "..chain); | 500 print("---- End of chain "..chain); |
498 print(); | 501 print(); |
499 end | 502 end |