summaryrefslogtreecommitdiff
path: root/src/module_list.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/module_list.lua')
-rw-r--r--src/module_list.lua13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/module_list.lua b/src/module_list.lua
index e343cf1..85428e4 100644
--- a/src/module_list.lua
+++ b/src/module_list.lua
@@ -119,8 +119,8 @@ end
function module_list:unregister(module)
if(module == self.output) then
- log.printf(log.WARNING, "won't remove output module: " .. module.name)
- return
+ log.printf(log.WARNING, "output module can't be removed safely, closing daemon")
+ return defines.KILL_DAEMON
end
for i, m in ipairs(self.inputs) do
@@ -131,11 +131,18 @@ function module_list:unregister(module)
break
end
end
+
+ return defines.OK
end
function module_list:unregister_by_class(class)
local free_list = {}
+ if(self.output.class == class) then
+ log.printf(log.WARNING, "output module can't be removed safely, closing daemon")
+ return defines.KILL_DAEMON
+ end
+
for i, m in ipairs(self.inputs) do
if(m.class == class) then
table.insert(free_list, 1, i)
@@ -147,6 +154,8 @@ function module_list:unregister_by_class(class)
self.inputs[i]:cleanup()
table.remove(self.inputs, i)
end
+
+ return defines.OK
end
function module_list:cleanup()