mod_firewall/mod_firewall.lua
changeset 1325 b21236b6b8d8
parent 1324 853a382c9bd6
child 1343 7dbde05b48a9
equal deleted inserted replaced
1324:853a382c9bd6 1325:b21236b6b8d8
    23 		"presence/bare", "presence/full", "presence/host";
    23 		"presence/bare", "presence/full", "presence/host";
    24 		"iq/bare", "iq/full", "iq/host";
    24 		"iq/bare", "iq/full", "iq/host";
    25 	};
    25 	};
    26 	deliver_remote = {
    26 	deliver_remote = {
    27 		type = "event"; "route/remote";
    27 		type = "event"; "route/remote";
    28 		priority = 0.1;
       
    29 	};
       
    30 	send_remote = { -- FIXME name
       
    31 		type = "filter"; "s2sout";
       
    32 		priority = 0.1;
    28 		priority = 0.1;
    33 	};
    29 	};
    34 };
    30 };
    35 
    31 
    36 local function idsafe(name)
    32 local function idsafe(name)
   374 				local handler, err = compile_handler(handler_code, "mod_firewall::"..chain);
   370 				local handler, err = compile_handler(handler_code, "mod_firewall::"..chain);
   375 				if not handler then
   371 				if not handler then
   376 					module:log("error", "Compilation error for %s: %s", script, err);
   372 					module:log("error", "Compilation error for %s: %s", script, err);
   377 				else
   373 				else
   378 					local chain_definition = chains[chain];
   374 					local chain_definition = chains[chain];
   379 					if chain_definition then
   375 					if chain_definition and chain_definition.type == "event" then
   380 						if chain_definition.type == "event" then
   376 						for _, event_name in ipairs(chain_definition) do
   381 							for _, event_name in ipairs(chain_definition) do
   377 							module:hook(event_name, handler, chain_definition.priority);
   382 								module:hook(event_name, handler, chain_definition.priority);
       
   383 							end
       
   384 						elseif chain_definition.type == "filter" then
       
   385 							-- TODO
       
   386 						end
   378 						end
   387 					elseif not chain:match("^user/") then
   379 					elseif not chain:match("^user/") then
   388 						module:log("warn", "Unknown chain %q", chain);
   380 						module:log("warn", "Unknown chain %q", chain);
   389 					end
   381 					end
   390 					module:hook("firewall/chains/"..chain, handler);
   382 					module:hook("firewall/chains/"..chain, handler);