aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2008-12-06 02:27:34 +0000
committerMatthew Wild <mwild1@gmail.com>2008-12-06 02:27:34 +0000
commit93d8d55319337de773305517c7027eb71b9c136e (patch)
treebc44d8d41586890e4bc23eca00f4b01c6930af22 /core
parentd9173986d5e120c9285fcda58aaf0fa977279414 (diff)
parentbfe08e485c3b4eaaae5841c48aec22499bbf56ff (diff)
downloadprosody-93d8d55319337de773305517c7027eb71b9c136e.tar.gz
prosody-93d8d55319337de773305517c7027eb71b9c136e.zip
Merge from waqas
Diffstat (limited to 'core')
-rw-r--r--core/stanza_router.lua33
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