projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
certmanager: Remove debug logging accidentally committed
[prosody.git]
/
core
/
stanza_router.lua
diff --git
a/core/stanza_router.lua
b/core/stanza_router.lua
index f7e881e302c54f380bd249ec9f3bd38400ec72ef..d6dd53062d655ae59768b097a0c9b71d7c6d1a5e 100644
(file)
--- a/
core/stanza_router.lua
+++ b/
core/stanza_router.lua
@@
-23,9
+23,6
@@
local bare_sessions = _G.prosody.bare_sessions;
function core_process_stanza(origin, stanza)
(origin.log or log)("debug", "Received[%s]: %s", origin.type, stanza:top_tag())
function core_process_stanza(origin, stanza)
(origin.log or log)("debug", "Received[%s]: %s", origin.type, stanza:top_tag())
- -- Currently we guarantee every stanza to have an xmlns, should we keep this rule?
- if not stanza.attr.xmlns then stanza.attr.xmlns = "jabber:client"; end
-
-- TODO verify validity of stanza (as well as JID validity)
if stanza.attr.type == "error" and #stanza.tags == 0 then return; end -- TODO invalid stanza, log
if stanza.name == "iq" then
-- TODO verify validity of stanza (as well as JID validity)
if stanza.attr.type == "error" and #stanza.tags == 0 then return; end -- TODO invalid stanza, log
if stanza.name == "iq" then
@@
-36,7
+33,7
@@
function core_process_stanza(origin, stanza)
end
end
end
end
- if origin.type == "c2s" and
stanza.attr.xmlns == "jabber:client"
then
+ if origin.type == "c2s" and
not stanza.attr.xmlns
then
if not origin.full_jid
and not(stanza.name == "iq" and stanza.attr.type == "set" and stanza.tags[1] and stanza.tags[1].name == "bind"
and stanza.tags[1].attr.xmlns == "urn:ietf:params:xml:ns:xmpp-bind") then
if not origin.full_jid
and not(stanza.name == "iq" and stanza.attr.type == "set" and stanza.tags[1] and stanza.tags[1].name == "bind"
and stanza.tags[1].attr.xmlns == "urn:ietf:params:xml:ns:xmpp-bind") then
@@
-92,7
+89,7
@@
function core_process_stanza(origin, stanza)
return; -- FIXME what should we do here?
end]] -- FIXME
return; -- FIXME what should we do here?
end]] -- FIXME
- if (origin.type == "s2sin" or origin.type == "c2s" or origin.type == "component") and xmlns ==
"jabber:client"
then
+ if (origin.type == "s2sin" or origin.type == "c2s" or origin.type == "component") and xmlns ==
nil
then
if origin.type == "s2sin" and not origin.dummy then
local host_status = origin.hosts[from_host];
if not host_status or not host_status.authed then -- remote server trying to impersonate some other server?
if origin.type == "s2sin" and not origin.dummy then
local host_status = origin.hosts[from_host];
if not host_status or not host_status.authed then -- remote server trying to impersonate some other server?
@@
-105,14
+102,14
@@
function core_process_stanza(origin, stanza)
local h = hosts[stanza.attr.to or origin.host or origin.to_host];
if h then
local event;
local h = hosts[stanza.attr.to or origin.host or origin.to_host];
if h then
local event;
- if
stanza.attr.xmlns == "jabber:client"
then
+ if
xmlns == nil
then
if stanza.name == "iq" and (stanza.attr.type == "set" or stanza.attr.type == "get") then
event = "stanza/iq/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name;
else
event = "stanza/"..stanza.name;
end
else
if stanza.name == "iq" and (stanza.attr.type == "set" or stanza.attr.type == "get") then
event = "stanza/iq/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name;
else
event = "stanza/"..stanza.name;
end
else
- event = "stanza/"..
stanza.attr.
xmlns..":"..stanza.name;
+ event = "stanza/"..xmlns..":"..stanza.name;
end
if h.events.fire_event(event, {origin = origin, stanza = stanza}) then return; end
end
end
if h.events.fire_event(event, {origin = origin, stanza = stanza}) then return; end
end
@@
-126,7
+123,7
@@
function core_post_stanza(origin, stanza, preevents)
local node, host, resource = jid_split(to);
local to_bare = node and (node.."@"..host) or host; -- bare JID
local node, host, resource = jid_split(to);
local to_bare = node and (node.."@"..host) or host; -- bare JID
- local to_type;
+ local to_type
, to_self
;
if node then
if resource then
to_type = '/full';
if node then
if resource then
to_type = '/full';
@@
-134,6
+131,7
@@
function core_post_stanza(origin, stanza, preevents)
to_type = '/bare';
if node == origin.username and host == origin.host then
stanza.attr.to = nil;
to_type = '/bare';
if node == origin.username and host == origin.host then
stanza.attr.to = nil;
+ to_self = true;
end
end
else
end
end
else
@@
-141,6
+139,7
@@
function core_post_stanza(origin, stanza, preevents)
to_type = '/host';
else
to_type = '/bare';
to_type = '/host';
else
to_type = '/bare';
+ to_self = true;
end
end
end
end
@@
-151,6
+150,7
@@
function core_post_stanza(origin, stanza, preevents)
local h = hosts[to_bare] or hosts[host or origin.host];
if h then
if h.events.fire_event(stanza.name..to_type, event_data) then return; end -- do processing
local h = hosts[to_bare] or hosts[host or origin.host];
if h then
if h.events.fire_event(stanza.name..to_type, event_data) then return; end -- do processing
+ if to_self and h.events.fire_event(stanza.name..'/self', event_data) then return; end -- do processing
if h.type == "component" then
component_handle_stanza(origin, stanza);
if h.type == "component" then
component_handle_stanza(origin, stanza);
@@
-182,7
+182,7
@@
function core_route_stanza(origin, stanza)
local xmlns = stanza.attr.xmlns;
--stanza.attr.xmlns = "jabber:server";
stanza.attr.xmlns = nil;
local xmlns = stanza.attr.xmlns;
--stanza.attr.xmlns = "jabber:server";
stanza.attr.xmlns = nil;
- log("debug", "sending s2s stanza: %s", tostring(stanza
)
);
+ log("debug", "sending s2s stanza: %s", tostring(stanza
.top_tag and stanza:top_tag()) or stanza
);
send_s2s(origin.host, host, stanza); -- TODO handle remote routing errors
stanza.attr.xmlns = xmlns; -- reset
else
send_s2s(origin.host, host, stanza); -- TODO handle remote routing errors
stanza.attr.xmlns = xmlns; -- reset
else