Merge presence/subscription support from waqas
[prosody.git] / core / servermanager.lua
1
2 local st = require "util.stanza";
3 local send = require "core.sessionmanager".send_to_session;
4 local xmlns_stanzas ='urn:ietf:params:xml:ns:xmpp-stanzas';
5
6 require "modulemanager"
7
8 -- Handle stanzas that were addressed to the server (whether they came from c2s, s2s, etc.)
9 function handle_stanza(origin, stanza)
10         -- Use plugins
11         if not modulemanager.handle_stanza(origin, stanza) then
12                 if stanza.name == "iq" then
13                         if stanza.attr.type ~= "result" and stanza.attr.type ~= "error" then
14                                 send(origin, st.error_reply(stanza, "cancel", "service-unavailable"));
15                         end
16                 elseif stanza.name == "message" then
17                         send(origin, st.error_reply(stanza, "cancel", "service-unavailable"));
18                 elseif stanza.name ~= "presence" then
19                         error("Unknown stanza");
20                 end
21         end
22 end