aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/componentmanager.lua15
1 files changed, 14 insertions, 1 deletions
diff --git a/core/componentmanager.lua b/core/componentmanager.lua
index 72cdda14..afed1df3 100644
--- a/core/componentmanager.lua
+++ b/core/componentmanager.lua
@@ -21,7 +21,8 @@
local log = require "util.logger".init("componentmanager");
-local module_load = require "core.modulemanager".load;
+local module_load = require "core.modulemanager".load;
+local module_unload = require "core.modulemanager".unload;
local jid_split = require "util.jid".split;
local hosts = hosts;
@@ -56,5 +57,17 @@ function register_component(host, component)
log("error", "Attempt to set component for existing host: "..host);
end
end
+
+function deregister_component(host, component)
+ if components[host] then
+ module_unload(host, "dialback");
+ components[host] = nil;
+ hosts[host] = nil;
+ log("debug", "component removed: "..host);
+ return true;
+ else
+ log("error", "Attempt to remove component for non-existing host: "..host);
+ end
+end
return _M;