projects
/
prosody.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fe29696
)
mod_blocklist: Explicitly halt event propagation after returning a reply (send return...
author
Kim Alvefur
<zash@zash.se>
Wed, 16 Sep 2015 13:16:51 +0000
(15:16 +0200)
committer
Kim Alvefur
<zash@zash.se>
Wed, 16 Sep 2015 13:16:51 +0000
(15:16 +0200)
plugins/mod_blocklist.lua
patch
|
blob
|
history
diff --git
a/plugins/mod_blocklist.lua
b/plugins/mod_blocklist.lua
index baed6709379003bcd45dedd69eb1e681236a8b68..8589c1e9f3d0d445c39653ce19ec86d7db919399 100644
(file)
--- a/
plugins/mod_blocklist.lua
+++ b/
plugins/mod_blocklist.lua
@@
-95,7
+95,8
@@
module:hook("iq-get/self/urn:xmpp:blocking:blocklist", function (event)
end
end
origin.interested_blocklist = true; -- Gets notified about changes
end
end
origin.interested_blocklist = true; -- Gets notified about changes
- return origin.send(reply);
+ origin.send(reply);
+ return true;
end);
-- Add or remove some jid(s) from the blocklist
end);
-- Add or remove some jid(s) from the blocklist
@@
-109,7
+110,8
@@
local function edit_blocklist(event)
for item in action:childtags("item") do
local jid = jid_prep(item.attr.jid);
if not jid then
for item in action:childtags("item") do
local jid = jid_prep(item.attr.jid);
if not jid then
- return origin.send(st_error_reply(stanza, "modify", "jid-malformed"));
+ origin.send(st_error_reply(stanza, "modify", "jid-malformed"));
+ return true;
end
item.attr.jid = jid; -- echo back prepped
new[jid] = is_contact_subscribed(username, module.host, jid) or false;
end
item.attr.jid = jid; -- echo back prepped
new[jid] = is_contact_subscribed(username, module.host, jid) or false;
@@
-119,7
+121,8
@@
local function edit_blocklist(event)
if mode and not next(new) then
-- <block/> element does not contain at least one <item/> child element
if mode and not next(new) then
-- <block/> element does not contain at least one <item/> child element
- return origin.send(st_error_reply(stanza, "modify", "bad-request"));
+ origin.send(st_error_reply(stanza, "modify", "bad-request"));
+ return true;
end
local blocklist = get_blocklist(username);
end
local blocklist = get_blocklist(username);
@@
-141,7
+144,8
@@
local function edit_blocklist(event)
if ok then
origin.send(st.reply(stanza));
else
if ok then
origin.send(st.reply(stanza));
else
- return origin.send(st_error_reply(stanza, "wait", "internal-server-error", err));
+ origin.send(st_error_reply(stanza, "wait", "internal-server-error", err));
+ return true;
end
if mode then
end
if mode then
@@
-208,7
+212,8
@@
end
local function bounce_stanza(event)
local origin, stanza = event.origin, event.stanza;
if drop_stanza(event) then
local function bounce_stanza(event)
local origin, stanza = event.origin, event.stanza;
if drop_stanza(event) then
- return origin.send(st_error_reply(stanza, "cancel", "service-unavailable"));
+ origin.send(st_error_reply(stanza, "cancel", "service-unavailable"));
+ return true;
end
end
end
end
@@
-244,8
+249,9
@@
local function bounce_outgoing(event)
return drop_outgoing(event);
end
if drop_outgoing(event) then
return drop_outgoing(event);
end
if drop_outgoing(event) then
-
return
origin.send(st_error_reply(stanza, "cancel", "not-acceptable", "You have blocked this JID")
+ origin.send(st_error_reply(stanza, "cancel", "not-acceptable", "You have blocked this JID")
:tag("blocked", { xmlns = "urn:xmpp:blocking:errors" }));
:tag("blocked", { xmlns = "urn:xmpp:blocking:errors" }));
+ return true;
end
end
end
end