diff options
Diffstat (limited to 'src/module_list.lua')
-rw-r--r-- | src/module_list.lua | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/module_list.lua b/src/module_list.lua index 26f2ff0..eb12b1f 100644 --- a/src/module_list.lua +++ b/src/module_list.lua @@ -58,20 +58,32 @@ module_list.output = nil function module_list:init(opt) local class, config = self:parse_config(opt.cmd_out) if(not class) then return defines.KILL_DAEMON end + if(self.classes[class].properties.type ~= defines.OUT_MODULE and + self.classes[class].properties.type ~= defines.INOUT_MODULE) then + log.printf(log.ERROR, "module class '%s' cannot be used as output module", class); + return defines.KILL_DAEMON + end log.printf(log.DEBUG, "output module class='%s'", class) for k, v in pairs(config) do log.printf(log.DEBUG, " config['%s'] = '%s'", k, v) end - self.output = self.classes[class]:new(config) + self.output = self.classes[class]:new(config, defines.OUT_MODULE) for idx, input in ipairs(opt.cmd_ins) do local class, config = self:parse_config(input) if(not class) then return defines.KILL_DAEMON end + if(self.classes[class].properties.type ~= defines.IN_MODULE and + self.classes[class].properties.type ~= defines.INOUT_MODULE and + self.classes[class].properties.type ~= defines.MISC_MODULE) then + log.printf(log.ERROR, "module class '%s' cannot be used as input module", class); + return defines.KILL_DAEMON + end + log.printf(log.DEBUG, "input[%d] module class='%s'", idx, class) for k, v in pairs(config) do log.printf(log.DEBUG, " config['%s'] = '%s'", k, v) end - table.insert(self.inputs, self.classes[class]:new(config)) + table.insert(self.inputs, self.classes[class]:new(config, defines.IN_MODULE)) end return defines.OK |