From 8d8cdb8574886137a29d8420d32ab42fcf95b75d Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Sat, 4 Oct 2008 02:10:14 +0100 Subject: Reply to unhandled iq's with service-unavailable --- core/servermanager.lua | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'core') 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 -- cgit v1.2.3