Added discohelper
[prosody.git] / core / servermanager.lua
index c1e075db11d1f1eb7cff4bca0c1b4b88afe043b5..8cbf2f12661735722d2c57be85146f6578cd8f4a 100644 (file)
@@ -1,20 +1,21 @@
 
 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"
+local modulemanager = require "core.modulemanager";
 
 -- Handle stanzas that were addressed to the server (whether they came from c2s, s2s, etc.)
 function handle_stanza(origin, stanza)
        -- Use plugins
        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);
+                       if stanza.attr.type ~= "result" and stanza.attr.type ~= "error" then
+                               origin.send(st.error_reply(stanza, "cancel", "service-unavailable"));
+                       end
+               elseif stanza.name == "message" then
+                       origin.send(st.error_reply(stanza, "cancel", "service-unavailable"));
+               elseif stanza.name ~= "presence" then
+                       error("Unknown stanza");
                end
        end
 end