From aa5d88fe4437d08b509164568150bafc16222ce5 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sun, 17 Nov 2019 23:53:51 +0100 Subject: mod_csi: Only advertise CSI to clients if something is handling CSI events --- plugins/mod_csi.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/mod_csi.lua') diff --git a/plugins/mod_csi.lua b/plugins/mod_csi.lua index 84476cac..870df418 100644 --- a/plugins/mod_csi.lua +++ b/plugins/mod_csi.lua @@ -3,7 +3,7 @@ local xmlns_csi = "urn:xmpp:csi:0"; local csi_feature = st.stanza("csi", { xmlns = xmlns_csi }); module:hook("stream-features", function (event) - if event.origin.username then + if event.origin.username and prosody.hosts[module.host].events._handlers["csi-client-active"] then event.features:add_child(csi_feature); end end); -- cgit v1.2.3 From 7c3ba237b9d0f3eb829b90e9e9344e5790481de3 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sat, 23 Nov 2019 17:09:48 +0100 Subject: mod_csi: Set module status based on whether a CSI handler module appears to be loaded --- plugins/mod_csi.lua | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'plugins/mod_csi.lua') diff --git a/plugins/mod_csi.lua b/plugins/mod_csi.lua index 870df418..e84ee032 100644 --- a/plugins/mod_csi.lua +++ b/plugins/mod_csi.lua @@ -21,3 +21,12 @@ end module:hook("stanza/"..xmlns_csi..":active", refire_event("csi-client-active")); module:hook("stanza/"..xmlns_csi..":inactive", refire_event("csi-client-inactive")); +function module.load() + if prosody.hosts[module.host].events._handlers["csi-client-active"] then + module:set_status("core", "CSI handler module loaded"); + else + module:set_status("warn", "No CSI handler module loaded"); + end +end +module:hook("module-loaded", module.load); +module:hook("module-unloaded", module.load); -- cgit v1.2.3 From 8703eaa89a6cf42d6fe4d8e1083bbb029afcf7e9 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sat, 23 Nov 2019 17:15:34 +0100 Subject: mod_csi: Cache CSI module availability to improve readabilty --- plugins/mod_csi.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'plugins/mod_csi.lua') diff --git a/plugins/mod_csi.lua b/plugins/mod_csi.lua index e84ee032..458ff491 100644 --- a/plugins/mod_csi.lua +++ b/plugins/mod_csi.lua @@ -2,8 +2,9 @@ local st = require "util.stanza"; local xmlns_csi = "urn:xmpp:csi:0"; local csi_feature = st.stanza("csi", { xmlns = xmlns_csi }); +local csi_handler_available = nil; module:hook("stream-features", function (event) - if event.origin.username and prosody.hosts[module.host].events._handlers["csi-client-active"] then + if event.origin.username and csi_handler_available then event.features:add_child(csi_feature); end end); @@ -23,8 +24,10 @@ module:hook("stanza/"..xmlns_csi..":inactive", refire_event("csi-client-inactive function module.load() if prosody.hosts[module.host].events._handlers["csi-client-active"] then + csi_handler_available = true; module:set_status("core", "CSI handler module loaded"); else + csi_handler_available = false; module:set_status("warn", "No CSI handler module loaded"); end end -- cgit v1.2.3