annotate mod_csi/mod_csi.lua @ 2494:d300ae5dba87

mod_smacks: Fix some bugs with smacks-ack-delayed event triggering. The old code had several flaws which are addressed here. First of all this fixes the if statement guarding the event generation There where some timing glitches addressed by this commit as well.
author tmolitor <thilo@eightysoft.de>
date Sun, 12 Feb 2017 21:23:22 +0100
parents fbb4cd2922a1
children eaf0b1e95016
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local st = require "util.stanza";
1590
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
2 local xmlns_csi = "urn:xmpp:csi:0";
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
3 local csi_feature = st.stanza("csi", { xmlns = xmlns_csi });
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 module:hook("stream-features", function (event)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 if event.origin.username then
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 event.features:add_child(csi_feature);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 end
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 end);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 function refire_event(name)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 return function (event)
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 if event.origin.username then
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 module:fire_event(name, event);
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 return true;
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 end
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 end;
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 end
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19
1590
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
20 module:hook("stanza/"..xmlns_csi..":active", refire_event("csi-client-active"));
fbb4cd2922a1 mod_csi: Update namespace to published version
Kim Alvefur <zash@zash.se>
parents: 1483
diff changeset
21 module:hook("stanza/"..xmlns_csi..":inactive", refire_event("csi-client-inactive"));
1483
90fe03e65d2c mod_csi: Client State Indication support
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22