aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2013-07-08 21:41:31 +0100
committerMatthew Wild <mwild1@gmail.com>2013-07-08 21:41:31 +0100
commit5ad0e8280273c22fef6cd5b7d915e895c3473344 (patch)
treec26e0fdeb8230cec51561eb0c5dfeda12ab1d7ce /plugins
parent717c9ba411ee82fd4c6c01db35d2b609ae049d58 (diff)
parent07891fe7e92e7fa2fa40f775f42c67036d147154 (diff)
downloadprosody-5ad0e8280273c22fef6cd5b7d915e895c3473344.tar.gz
prosody-5ad0e8280273c22fef6cd5b7d915e895c3473344.zip
Merge 0.9->trunk
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mod_component.lua7
1 files changed, 6 insertions, 1 deletions
diff --git a/plugins/mod_component.lua b/plugins/mod_component.lua
index 871a20e4..2fde57ee 100644
--- a/plugins/mod_component.lua
+++ b/plugins/mod_component.lua
@@ -9,6 +9,7 @@
module:set_global();
local t_concat = table.concat;
+local traceback = debug.traceback;
local logger = require "util.logger";
local sha1 = require "util.hashes".sha1;
@@ -183,6 +184,7 @@ function stream_callbacks.streamclosed(session)
session:close();
end
+local function handleerr(err) log("error", "Traceback[component]: %s", traceback(tostring(err), 2)); end
function stream_callbacks.handlestanza(session, stanza)
-- Namespaces are icky.
if not stanza.attr.xmlns and stanza.name == "handshake" then
@@ -213,7 +215,10 @@ function stream_callbacks.handlestanza(session, stanza)
return;
end
end
- return core_process_stanza(session, stanza);
+
+ if stanza then
+ return xpcall(function () return core_process_stanza(session, stanza) end, handleerr);
+ end
end
--- Closing a component connection