123 |
123 |
124 -- This function handles stanzas which are not routed any further, |
124 -- This function handles stanzas which are not routed any further, |
125 -- that is, they are handled by this server |
125 -- that is, they are handled by this server |
126 function core_handle_stanza(origin, stanza) |
126 function core_handle_stanza(origin, stanza) |
127 -- Handlers |
127 -- Handlers |
128 if modules_handle_stanza(stanza.attr.to or origin.host, origin, stanza) then return; end |
128 if modules_handle_stanza(select(2, jid_split(stanza.attr.to)) or origin.host, origin, stanza) then return; end |
129 if origin.type == "c2s" or origin.type == "s2sin" then |
129 if origin.type == "c2s" or origin.type == "s2sin" then |
130 if origin.type == "c2s" then |
130 if origin.type == "c2s" then |
131 if stanza.name == "presence" and origin.roster then |
131 if stanza.name == "presence" and origin.roster then |
132 if stanza.attr.type == nil or stanza.attr.type == "unavailable" then |
132 if stanza.attr.type == nil or stanza.attr.type == "unavailable" then |
133 handle_normal_presence(origin, stanza, core_route_stanza); |
133 handle_normal_presence(origin, stanza, core_route_stanza); |