Changeset

43:03dc9df59368

Reply to unhandled iq's with service-unavailable
author Matthew Wild <mwild1@gmail.com>
date Sat, 04 Oct 2008 02:10:14 +0100
parents 42:2e3715e30912
children 44:80d2ade0fd69
files core/servermanager.lua
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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