diff options
author | Matthew Wild <mwild1@gmail.com> | 2008-10-04 02:10:14 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2008-10-04 02:10:14 +0100 |
commit | 8d8cdb8574886137a29d8420d32ab42fcf95b75d (patch) | |
tree | a769d07f255537703c026563eae91121f2d745be /core/servermanager.lua | |
parent | 9d19964c829659b3b25ef472f899d9702b2add2f (diff) | |
download | prosody-8d8cdb8574886137a29d8420d32ab42fcf95b75d.tar.gz prosody-8d8cdb8574886137a29d8420d32ab42fcf95b75d.zip |
Reply to unhandled iq's with service-unavailable
Diffstat (limited to 'core/servermanager.lua')
-rw-r--r-- | core/servermanager.lua | 14 |
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 |