218 if rostermanager.is_contact_subscribed(node, host, from_bare) then |
218 if rostermanager.is_contact_subscribed(node, host, from_bare) then |
219 if 0 == send_presence_of_available_resources(node, host, st_from, origin, core_route_stanza) then |
219 if 0 == send_presence_of_available_resources(node, host, st_from, origin, core_route_stanza) then |
220 -- TODO send last recieved unavailable presence (or we MAY do nothing, which is fine too) |
220 -- TODO send last recieved unavailable presence (or we MAY do nothing, which is fine too) |
221 end |
221 end |
222 else |
222 else |
223 core_route_stanza(origin, st.presence({from=to_bare, to=from_bare, type="unsubscribed"})); |
223 core_route_stanza(hosts[host], st.presence({from=to_bare, to=from_bare, type="unsubscribed"})); |
224 end |
224 end |
225 elseif stanza.attr.type == "subscribe" then |
225 elseif stanza.attr.type == "subscribe" then |
226 if rostermanager.is_contact_subscribed(node, host, from_bare) then |
226 if rostermanager.is_contact_subscribed(node, host, from_bare) then |
227 core_route_stanza(origin, st.presence({from=to_bare, to=from_bare, type="subscribed"})); -- already subscribed |
227 core_route_stanza(hosts[host], st.presence({from=to_bare, to=from_bare, type="subscribed"})); -- already subscribed |
228 -- Sending presence is not clearly stated in the RFC, but it seems appropriate |
228 -- Sending presence is not clearly stated in the RFC, but it seems appropriate |
229 if 0 == send_presence_of_available_resources(node, host, from_bare, origin, core_route_stanza) then |
229 if 0 == send_presence_of_available_resources(node, host, from_bare, origin, core_route_stanza) then |
230 -- TODO send last recieved unavailable presence (or we MAY do nothing, which is fine too) |
230 -- TODO send last recieved unavailable presence (or we MAY do nothing, which is fine too) |
231 end |
231 end |
232 else |
232 else |