mod_smacks: Fix traceback due to session being destroyed in send()
Sending something can cause the OS to notice that the connection is dead
and then the connection can be dead at this point. More likely if
opportunistic_writes is enabled.
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.
origin.send(st.reply(stanza));
return true;
end, 10);