diff options
-rw-r--r-- | plugins/mod_csi.lua | 1 | ||||
-rw-r--r-- | plugins/mod_csi_simple.lua | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/plugins/mod_csi.lua b/plugins/mod_csi.lua index 03f052b7..7f50dfd9 100644 --- a/plugins/mod_csi.lua +++ b/plugins/mod_csi.lua @@ -11,6 +11,7 @@ end); function refire_event(name) return function (event) if event.origin.username then + session.state = event.stanza.name; module:fire_event(name, event); return true; end diff --git a/plugins/mod_csi_simple.lua b/plugins/mod_csi_simple.lua index f3df5734..1efff38f 100644 --- a/plugins/mod_csi_simple.lua +++ b/plugins/mod_csi_simple.lua @@ -81,11 +81,11 @@ module:hook("csi-client-inactive", function (event) pump:pause(); session.pump = pump; function session.send(stanza) - if module:fire_event("csi-is-stanza-important", { stanza = stanza, session = session }) then + if session.state == "active" or module:fire_event("csi-is-stanza-important", { stanza = stanza, session = session }) then pump:flush(); send(stanza); else - if st.is_stanza(stanza) then + if st.is_stanza(stanza) and stanza.attr.xmlns == nil and stanza.name ~= "iq" then stanza = st.clone(stanza); stanza:add_direct_child(st.stanza("delay", {xmlns = "urn:xmpp:delay", from = bare_jid, stamp = dt.datetime()})); end |