aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/servermanager.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/core/servermanager.lua b/core/servermanager.lua
index 02ccab53..c1e075db 100644
--- a/core/servermanager.lua
+++ b/core/servermanager.lua
@@ -1,8 +1,20 @@
+local st = require "util.stanza";
+local send = require "core.sessionmanager".send_to_session;
+local xmlns_stanzas ='urn:ietf:params:xml:ns:xmpp-stanzas';
+
require "modulemanager"
-- Handle stanzas that were addressed to the server (whether they came from c2s, s2s, etc.)
function handle_stanza(origin, stanza)
-- Use plugins
- return modulemanager.handle_stanza(origin, stanza);
+ if not modulemanager.handle_stanza(origin, stanza) then
+ if stanza.name == "iq" then
+ local reply = st.reply(stanza);
+ reply.attr.type = "error";
+ reply:tag("error", { type = "cancel" })
+ :tag("service-unavailable", { xmlns = xmlns_stanzas });
+ send(origin, reply);
+ end
+ end
end