mod_storage_xep0227: treat roster metadata pseudo-entry correctly
The roster version is stored in a pseudo-item which has the key `false`.
The if condition in the touched code attempts to guard against this, but
it does not take into account that the jid prepping returns nil instead
of false.
By moving the jid prepping into the if, we can check for the metadata
entry safely.
--- a/plugins/mod_storage_xep0227.lua Sat Jan 15 15:39:13 2022 +0100
+++ b/plugins/mod_storage_xep0227.lua Sat Jan 15 15:40:29 2022 +0100
@@ -250,8 +250,8 @@
local roster = st.stanza("query", {xmlns='jabber:iq:roster'});
usere:add_child(roster);
for contact_jid, item in pairs(data) do
- contact_jid = jid_bare(jid_prep(contact_jid));
if contact_jid ~= false then
+ contact_jid = jid_bare(jid_prep(contact_jid));
if contact_jid ~= user_jid then -- Skip self-contacts
roster:tag("item", {
jid = contact_jid,