core/servermanager.lua
author Matthew Wild <mwild1@gmail.com>
Wed, 01 May 2013 13:54:00 +0100
branchs2s
changeset 5558 774ab5f2efa6
parent 111 0abe771b43c6
child 315 4df26c981728
permissions -rw-r--r--
Close 's2s' branch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
     1
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
     2
local st = require "util.stanza";
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
     3
local send = require "core.sessionmanager".send_to_session;
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
     4
local xmlns_stanzas ='urn:ietf:params:xml:ns:xmpp-stanzas';
30
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     5
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     6
require "modulemanager"
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     7
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     8
-- Handle stanzas that were addressed to the server (whether they came from c2s, s2s, etc.)
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     9
function handle_stanza(origin, stanza)
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
	-- Use plugins
43
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
    11
	if not modulemanager.handle_stanza(origin, stanza) then
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
    12
		if stanza.name == "iq" then
111
0abe771b43c6 Fixed: Unhandled stanza handling
Waqas Hussain <waqas20@gmail.com>
parents: 43
diff changeset
    13
			if stanza.attr.type ~= "result" and stanza.attr.type ~= "error" then
0abe771b43c6 Fixed: Unhandled stanza handling
Waqas Hussain <waqas20@gmail.com>
parents: 43
diff changeset
    14
				send(origin, st.error_reply(stanza, "cancel", "service-unavailable"));
0abe771b43c6 Fixed: Unhandled stanza handling
Waqas Hussain <waqas20@gmail.com>
parents: 43
diff changeset
    15
			end
0abe771b43c6 Fixed: Unhandled stanza handling
Waqas Hussain <waqas20@gmail.com>
parents: 43
diff changeset
    16
		elseif stanza.name == "message" then
0abe771b43c6 Fixed: Unhandled stanza handling
Waqas Hussain <waqas20@gmail.com>
parents: 43
diff changeset
    17
			send(origin, st.error_reply(stanza, "cancel", "service-unavailable"));
0abe771b43c6 Fixed: Unhandled stanza handling
Waqas Hussain <waqas20@gmail.com>
parents: 43
diff changeset
    18
		elseif stanza.name ~= "presence" then
0abe771b43c6 Fixed: Unhandled stanza handling
Waqas Hussain <waqas20@gmail.com>
parents: 43
diff changeset
    19
			error("Unknown stanza");
43
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
    20
		end
03dc9df59368 Reply to unhandled iq's with service-unavailable
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
    21
	end
30
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    22
end