Mercurial > prosody-modules
comparison mod_smacks/mod_smacks.lua @ 1539:05fa54404012
mod_smacks: Send ack requests by serializing and concatenating them to outgoing stanzas, using a timer might cause high CPU usage
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Tue, 28 Oct 2014 22:26:41 +0100 |
| parents | 7d86fc477993 |
| children | dc0cf2ba0e1a |
comparison
equal
deleted
inserted
replaced
| 1538:57bb2497fadc | 1539:05fa54404012 |
|---|---|
| 72 session.log("debug", "#queue = %d", #queue); | 72 session.log("debug", "#queue = %d", #queue); |
| 73 if session.hibernating then | 73 if session.hibernating then |
| 74 session.log("debug", "hibernating, stanza queued"); | 74 session.log("debug", "hibernating, stanza queued"); |
| 75 return ""; -- Hack to make session.send() not return nil | 75 return ""; -- Hack to make session.send() not return nil |
| 76 end | 76 end |
| 77 if #queue > max_unacked_stanzas then | 77 if #queue > max_unacked_stanzas and not session.awaiting_ack then |
| 78 module:add_timer(0, function () | 78 session.awaiting_ack = true; |
| 79 if not session.awaiting_ack then | 79 return tostring(stanza)..tostring(st.stanza("r", { xmlns = session.smacks })); |
| 80 session.awaiting_ack = true; | |
| 81 (session.sends2s or session.send)(st.stanza("r", { xmlns = session.smacks })); | |
| 82 end | |
| 83 end); | |
| 84 end | 80 end |
| 85 end | 81 end |
| 86 return stanza; | 82 return stanza; |
| 87 end | 83 end |
| 88 | 84 |
