--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_csi_compat/mod_csi_compat.lua Fri Aug 15 21:17:58 2014 +0100
@@ -0,0 +1,18 @@
+local st = require "util.stanza";
+
+module:depends("csi");
+
+module:add_feature("google:queue");
+
+module:hook("iq-set/self/google:queue:query", function(event)
+ local origin, stanza = event.origin, event.stanza;
+ (origin.log or module._log)("debug", "Google queue invoked (CSI compat mode)")
+ local payload = stanza:get_child("query", "google:queue");
+ if payload:get_child("enable") then
+ module:fire_event("csi-client-inactive", event);
+ elseif payload:get_child("disable") then
+ module:fire_event("csi-client-active", event);
+ end
+ -- <flush/> is implemented as a noop, any IQ stanza would flush the queue anyways.
+ return origin.send(st.reply(stanza));
+end, 10);