aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/componentmanager.lua1
-rw-r--r--core/configmanager.lua5
-rw-r--r--core/xmlhandlers.lua4
3 files changed, 8 insertions, 2 deletions
diff --git a/core/componentmanager.lua b/core/componentmanager.lua
index 308dea57..96b78bf2 100644
--- a/core/componentmanager.lua
+++ b/core/componentmanager.lua
@@ -104,6 +104,7 @@ end
function deregister_component(host)
if components[host] then
modulemanager.unload(host, "dialback");
+ host.connected = nil;
local host_config = configmanager.getconfig()[host];
if host_config and ((host_config.core.enabled == nil or host_config.core.enabled) and type(host_config.core.component_module) == "string") then
-- Set default handler
diff --git a/core/configmanager.lua b/core/configmanager.lua
index 299374ec..37646017 100644
--- a/core/configmanager.lua
+++ b/core/configmanager.lua
@@ -12,6 +12,8 @@ local _G = _G;
local setmetatable, loadfile, pcall, rawget, rawset, io, error, dofile, type =
setmetatable, loadfile, pcall, rawget, rawset, io, error, dofile, type;
+local eventmanager = require "core.eventmanager";
+
module "configmanager"
local parsers = {};
@@ -68,6 +70,9 @@ function load(filename, format)
if f then
local ok, err = parsers[format].load(f:read("*a"));
f:close();
+ if ok then
+ eventmanager.fire_event("config-reloaded", { filename = filename, format = format });
+ end
return ok, "parser", err;
end
return f, "file", err;
diff --git a/core/xmlhandlers.lua b/core/xmlhandlers.lua
index 1409a1ec..67a0829d 100644
--- a/core/xmlhandlers.lua
+++ b/core/xmlhandlers.lua
@@ -57,7 +57,7 @@ function init_xmlhandlers(session, stream_callbacks)
stanza:text(t_concat(chardata));
chardata = {};
end
- local curr_ns,name = tagname:match("^(.+)|([%w%-]+)$");
+ local curr_ns,name = tagname:match("^(.+)|([^%|]+)$");
if curr_ns ~= stream_default_ns then
attr.xmlns = curr_ns;
end
@@ -109,7 +109,7 @@ function init_xmlhandlers(session, stream_callbacks)
end
end
function xml_handlers:EndElement(tagname)
- curr_ns,name = tagname:match("^(.+)|([%w%-]+)$");
+ curr_ns,name = tagname:match("^(.+)|([^%|]+)$");
if (not stanza) or (#stanza.last_add > 0 and name ~= stanza.last_add[#stanza.last_add].name) then
if tagname == stream_tag then
if cb_streamclosed then