diff options
author | Matthew Wild <mwild1@gmail.com> | 2008-11-19 05:09:05 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2008-11-19 05:09:05 +0000 |
commit | f611cb1c738092e8653512f88d97b9f84f38784b (patch) | |
tree | 38bf61120fbd0879364e14e88b3e015b1f0c3440 /core/stanza_router.lua | |
parent | 8b041f3cdbc219dc78f884e6418c83d03b867a5a (diff) | |
download | prosody-f611cb1c738092e8653512f88d97b9f84f38784b.tar.gz prosody-f611cb1c738092e8653512f88d97b9f84f38784b.zip |
Extra checks before sending error replies to incoming stanzas
Diffstat (limited to 'core/stanza_router.lua')
-rw-r--r-- | core/stanza_router.lua | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/stanza_router.lua b/core/stanza_router.lua index 9aa923eb..46ece139 100644 --- a/core/stanza_router.lua +++ b/core/stanza_router.lua @@ -35,7 +35,7 @@ local jid_split = require "util.jid".split; local print = print; function core_process_stanza(origin, stanza) - log("debug", "Received[%s]: %s", origin.type, stanza:pretty_top_tag()) + (origin.log or log)("debug", "Received[%s]: %s", origin.type, stanza:pretty_print()) --top_tag()) if not stanza.attr.xmlns then stanza.attr.xmlns = "jabber:client"; end -- FIXME Hack. This should be removed when we fix namespace handling. -- TODO verify validity of stanza (as well as JID validity) @@ -177,19 +177,19 @@ function core_handle_stanza(origin, stanza) stanza.attr.to = nil; -- reset it else log("warn", "Unhandled c2s presence: %s", tostring(stanza)); - if stanza.attr.type ~= "error" then + if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" then origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? end end else log("warn", "Unhandled c2s stanza: %s", tostring(stanza)); - if stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then + if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? end end -- TODO handle other stanzas else log("warn", "Unhandled origin: %s", origin.type); - if stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then + if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then -- s2s stanzas can get here (origin.sends2s or origin.send)(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? end |