diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/servermanager.lua | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/core/servermanager.lua b/core/servermanager.lua index c1e075db..aba3f5d5 100644 --- a/core/servermanager.lua +++ b/core/servermanager.lua @@ -10,11 +10,13 @@ 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 + send(origin, st.error_reply(stanza, "cancel", "service-unavailable")); + end + elseif stanza.name == "message" then + send(origin, st.error_reply(stanza, "cancel", "service-unavailable")); + elseif stanza.name ~= "presence" then + error("Unknown stanza"); end end end |