Reply to unhandled iq's with service-unavailable

Sat, 04 Oct 2008 02:10:14 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Sat, 04 Oct 2008 02:10:14 +0100
changeset 43
03dc9df59368
parent 42
2e3715e30912
child 44
80d2ade0fd69

Reply to unhandled iq's with service-unavailable

core/servermanager.lua file | annotate | diff | comparison | revisions
--- 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

mercurial