aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2008-10-04 02:10:14 +0100
committerMatthew Wild <mwild1@gmail.com>2008-10-04 02:10:14 +0100
commit8d8cdb8574886137a29d8420d32ab42fcf95b75d (patch)
treea769d07f255537703c026563eae91121f2d745be /core
parent9d19964c829659b3b25ef472f899d9702b2add2f (diff)
downloadprosody-8d8cdb8574886137a29d8420d32ab42fcf95b75d.tar.gz
prosody-8d8cdb8574886137a29d8420d32ab42fcf95b75d.zip
Reply to unhandled iq's with service-unavailable
Diffstat (limited to 'core')
-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