diff options
author | Matthew Wild <mwild1@gmail.com> | 2008-12-06 03:42:21 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2008-12-06 03:42:21 +0000 |
commit | 698624de46ac08573b914736b7f3fcae7fa9b6c8 (patch) | |
tree | 0dfc728732cef5a30192514e03bf9ce7aa425515 | |
parent | dfeabed19fd81dabeb88477c716ecd4c132484c0 (diff) | |
parent | 93d8d55319337de773305517c7027eb71b9c136e (diff) | |
download | prosody-698624de46ac08573b914736b7f3fcae7fa9b6c8.tar.gz prosody-698624de46ac08573b914736b7f3fcae7fa9b6c8.zip |
Merge from waqas/myself
-rw-r--r-- | core/stanza_router.lua | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/core/stanza_router.lua b/core/stanza_router.lua index e5086b67..c2214b1c 100644 --- a/core/stanza_router.lua +++ b/core/stanza_router.lua @@ -121,30 +121,31 @@ end function core_handle_stanza(origin, stanza) -- Handlers if modules_handle_stanza(stanza.attr.to or origin.host, origin, stanza) then return; end - if origin.type == "c2s" or origin.type == "c2s_unauthed" then - local session = origin; - - if stanza.name == "presence" and origin.roster then - if stanza.attr.type == nil or stanza.attr.type == "unavailable" then - handle_normal_presence(origin, stanza, core_route_stanza); + if origin.type == "c2s" or origin.type == "s2sin" then + if origin.type == "c2s" then + if stanza.name == "presence" and origin.roster then + if stanza.attr.type == nil or stanza.attr.type == "unavailable" then + handle_normal_presence(origin, stanza, core_route_stanza); + else + log("warn", "Unhandled c2s presence: %s", tostring(stanza)); + 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 presence: %s", tostring(stanza)); - if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" then + log("warn", "Unhandled c2s stanza: %s", tostring(stanza)); + 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 - else - log("warn", "Unhandled c2s stanza: %s", tostring(stanza)); + else -- s2s stanzas + log("warn", "Unhandled s2s stanza: %s", tostring(stanza)); 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.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.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? end + else + log("warn", "Unhandled %s stanza: %s", origin.type, tostring(stanza)); end end |