diff options
author | Kim Alvefur <zash@zash.se> | 2018-06-28 01:46:28 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2018-06-28 01:46:28 +0200 |
commit | fd8a2e2de4775b74e9f62c4ab6637a63511e075c (patch) | |
tree | ebeaf4b642264a35c3658465c034274fc42098aa | |
parent | cecc562ac0f755a234fb82848a388354b0e14989 (diff) | |
download | prosody-fd8a2e2de4775b74e9f62c4ab6637a63511e075c.tar.gz prosody-fd8a2e2de4775b74e9f62c4ab6637a63511e075c.zip |
mod_pubsub: Handle optional item (thanks jonasw)
The ‘item’ argument is optional, so it needs to handle it not being
included, or util.stanza will throw an error in add_child
-rw-r--r-- | plugins/mod_pubsub/mod_pubsub.lua | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/plugins/mod_pubsub/mod_pubsub.lua b/plugins/mod_pubsub/mod_pubsub.lua index 707f2f8e..82c787aa 100644 --- a/plugins/mod_pubsub/mod_pubsub.lua +++ b/plugins/mod_pubsub/mod_pubsub.lua @@ -55,10 +55,13 @@ function simple_broadcast(kind, node, jids, item, actor, node_obj) local message = st.message({ from = module.host, type = msg_type, id = id }) :tag("event", { xmlns = xmlns_pubsub_event }) :tag(kind, { node = node }) - :add_child(item); + + if item then + message:add_child(item); + end -- Compose a sensible textual representation of at least Atom payloads - if node_obj and node_obj.config.include_body and item.tags[1] then + if node_obj and item and node_obj.config.include_body and item.tags[1] then local payload = item.tags[1]; if payload.attr.xmlns == "http://www.w3.org/2005/Atom" then message:reset(); |