Software /
code /
prosody
Comparison
plugins/mod_presence.lua @ 6291:7a604381d6fc
mod_presence: Move presence/initial event to correct place so it actually fires
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 03 Jul 2014 11:54:50 +0200 |
parent | 6281:8dc01fa767e0 |
child | 6302:76699a0ae4c4 |
comparison
equal
deleted
inserted
replaced
6289:a29cc79295e6 | 6291:7a604381d6fc |
---|---|
88 stanza.attr.to = jid; | 88 stanza.attr.to = jid; |
89 core_post_stanza(origin, stanza, true); | 89 core_post_stanza(origin, stanza, true); |
90 end | 90 end |
91 end | 91 end |
92 if stanza.attr.type == nil and not origin.presence then -- initial presence | 92 if stanza.attr.type == nil and not origin.presence then -- initial presence |
93 module:fire_event("presence/initial", { origin = origin, stanza = stanza } ); | |
93 origin.presence = stanza; -- FIXME repeated later | 94 origin.presence = stanza; -- FIXME repeated later |
94 local probe = st.presence({from = origin.full_jid, type = "probe"}); | 95 local probe = st.presence({from = origin.full_jid, type = "probe"}); |
95 for jid, item in pairs(roster) do -- probe all contacts we are subscribed to | 96 for jid, item in pairs(roster) do -- probe all contacts we are subscribed to |
96 if item.subscription == "both" or item.subscription == "to" then | 97 if item.subscription == "both" or item.subscription == "to" then |
97 probe.attr.to = jid; | 98 probe.attr.to = jid; |
135 core_post_stanza(origin, stanza, true); | 136 core_post_stanza(origin, stanza, true); |
136 end | 137 end |
137 origin.directed = nil; | 138 origin.directed = nil; |
138 end | 139 end |
139 else | 140 else |
140 if not origin.presence then | |
141 module:fire_event("presence/initial", { origin = origin, stanza = stanza } ); | |
142 end | |
143 origin.presence = stanza; | 141 origin.presence = stanza; |
144 stanza:tag("delay", { xmlns = "urn:xmpp:delay", from = host, stamp = datetime.datetime() }):up(); | 142 stanza:tag("delay", { xmlns = "urn:xmpp:delay", from = host, stamp = datetime.datetime() }):up(); |
145 if origin.priority ~= priority then | 143 if origin.priority ~= priority then |
146 origin.priority = priority; | 144 origin.priority = priority; |
147 recalc_resource_map(user); | 145 recalc_resource_map(user); |