Mercurial > prosody-hg
comparison plugins/mod_presence.lua @ 2168:1a99a3bf3ce6 0.6.0
Merge with 0.6 on prosody.im
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 25 Nov 2009 05:11:10 +0000 |
| parents | 13ac68e8760b |
| children | 3987078bb179 |
comparison
equal
deleted
inserted
replaced
| 2165:529af807ba1a | 2168:1a99a3bf3ce6 |
|---|---|
| 231 -- Sending presence is not clearly stated in the RFC, but it seems appropriate | 231 -- Sending presence is not clearly stated in the RFC, but it seems appropriate |
| 232 if 0 == send_presence_of_available_resources(node, host, from_bare, origin, core_route_stanza) then | 232 if 0 == send_presence_of_available_resources(node, host, from_bare, origin, core_route_stanza) then |
| 233 -- TODO send last recieved unavailable presence (or we MAY do nothing, which is fine too) | 233 -- TODO send last recieved unavailable presence (or we MAY do nothing, which is fine too) |
| 234 end | 234 end |
| 235 else | 235 else |
| 236 core_route_stanza(origin, st.presence({from=to_bare, to=from_bare, type="unavailable"})); -- acknowledging receipt | |
| 236 if not rostermanager.is_contact_pending_in(node, host, from_bare) then | 237 if not rostermanager.is_contact_pending_in(node, host, from_bare) then |
| 237 if rostermanager.set_contact_pending_in(node, host, from_bare) then | 238 if rostermanager.set_contact_pending_in(node, host, from_bare) then |
| 238 sessionmanager.send_to_available_resources(node, host, stanza); | 239 sessionmanager.send_to_available_resources(node, host, stanza); |
| 239 end -- TODO else return error, unable to save | 240 end -- TODO else return error, unable to save |
| 240 end | 241 end |
| 241 end | 242 end |
| 242 elseif stanza.attr.type == "unsubscribe" then | 243 elseif stanza.attr.type == "unsubscribe" then |
| 243 if rostermanager.process_inbound_unsubscribe(node, host, from_bare) then | 244 if rostermanager.process_inbound_unsubscribe(node, host, from_bare) then |
| 245 sessionmanager.send_to_interested_resources(node, host, stanza); | |
| 244 rostermanager.roster_push(node, host, from_bare); | 246 rostermanager.roster_push(node, host, from_bare); |
| 245 end | 247 end |
| 246 elseif stanza.attr.type == "subscribed" then | 248 elseif stanza.attr.type == "subscribed" then |
| 247 if rostermanager.process_inbound_subscription_approval(node, host, from_bare) then | 249 if rostermanager.process_inbound_subscription_approval(node, host, from_bare) then |
| 250 sessionmanager.send_to_interested_resources(node, host, stanza); | |
| 248 rostermanager.roster_push(node, host, from_bare); | 251 rostermanager.roster_push(node, host, from_bare); |
| 249 end | 252 end |
| 250 elseif stanza.attr.type == "unsubscribed" then | 253 elseif stanza.attr.type == "unsubscribed" then |
| 251 if rostermanager.process_inbound_subscription_cancellation(node, host, from_bare) then | 254 if rostermanager.process_inbound_subscription_cancellation(node, host, from_bare) then |
| 255 sessionmanager.send_to_interested_resources(node, host, stanza); | |
| 252 rostermanager.roster_push(node, host, from_bare); | 256 rostermanager.roster_push(node, host, from_bare); |
| 253 end | 257 end |
| 254 end -- discard any other type | 258 end -- discard any other type |
| 255 stanza.attr.from, stanza.attr.to = st_from, st_to; | 259 stanza.attr.from, stanza.attr.to = st_from, st_to; |
| 256 end | 260 end |
