# HG changeset patch # User Matthew Wild # Date 1223082614 -3600 # Node ID 03dc9df59368ca5614d87a763e51a7596297fb21 # Parent 2e3715e30912a83d2c0681dd64d25655c8a64914 Reply to unhandled iq's with service-unavailable diff -r 2e3715e30912 -r 03dc9df59368 core/servermanager.lua --- a/core/servermanager.lua Sat Oct 04 02:09:46 2008 +0100 +++ b/core/servermanager.lua Sat Oct 04 02:10:14 2008 +0100 @@ -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