X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_blocklist.lua;h=dca729f060fe329d29ee8f356c1d4daa9ba21f0f;hb=ed5838b20029fc151b02ddbc9eb73807707d5189;hp=41a66f35a13765c80160eaaa1b0293a08aaae24c;hpb=4cf2b256699be1eeb3d9439bd2d0d86bc2d67a25;p=prosody.git diff --git a/plugins/mod_blocklist.lua b/plugins/mod_blocklist.lua index 41a66f35..dca729f0 100644 --- a/plugins/mod_blocklist.lua +++ b/plugins/mod_blocklist.lua @@ -98,16 +98,16 @@ module:hook("iq-get/self/urn:xmpp:blocking:blocklist", function (event) return origin.send(reply); end); --- Add or remove a bare jid from the blocklist +-- Add or remove some jid(s) from the blocklist -- We want this to be atomic and not do a partial update local function edit_blocklist(event) local origin, stanza = event.origin, event.stanza; local username = origin.username; - local act = stanza.tags[1]; + local action = stanza.tags[1]; local new = {}; local jid; - for item in act:childtags("item") do + for item in action:childtags("item") do jid = jid_prep(item.attr.jid); if not jid then return origin.send(st_error_reply(stanza, "modify", "jid-malformed")); @@ -116,7 +116,7 @@ local function edit_blocklist(event) new[jid] = is_contact_subscribed(username, host, jid) or false; end - local mode = act.name == "block" or nil; + local mode = action.name == "block" or nil; if mode and not next(new) then -- element does not contain at least one child element @@ -127,7 +127,7 @@ local function edit_blocklist(event) local new_blocklist = {}; - if mode and next(new) then + if mode or next(new) then for jid in pairs(blocklist) do new_blocklist[jid] = true; end @@ -156,7 +156,7 @@ local function edit_blocklist(event) end if sessions[username] then local blocklist_push = st.iq({ type = "set", id = "blocklist-push" }) - :add_child(act); -- I am lazy + :add_child(action); -- I am lazy for _, session in pairs(sessions[username].sessions) do if session.interested_blocklist then