Software /
code /
prosody
Diff
plugins/mod_pubsub/pubsub.lib.lua @ 12636:e8934ce6ea0f
util.stanza: Add method for extracting a single attribute value
Sometimes you only care about a single attribute, but the child tag
itself may be optional, leading to needing `tag and tag.attr.foo` or
`stanza:find("tag@foo")`.
The `:find()` method is fairly complex, so avoiding it for this kind of
simpler use case is a win.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 17 Aug 2022 19:04:30 +0200 |
parent | 12589:39ae08180c81 |
child | 12960:31b22cc221b5 |
line wrap: on
line diff
--- a/plugins/mod_pubsub/pubsub.lib.lua Mon Aug 15 16:35:14 2022 +0200 +++ b/plugins/mod_pubsub/pubsub.lib.lua Wed Aug 17 19:04:30 2022 +0200 @@ -678,8 +678,7 @@ function handlers.set_retract(origin, stanza, retract, service) local node, notify = retract.attr.node, retract.attr.notify; notify = (notify == "1") or (notify == "true"); - local item = retract:get_child("item"); - local id = item and item.attr.id + local id = retract:get_child_attr("item", nil, "id"); if not (node and id) then origin.send(pubsub_error_reply(stanza, node and "item-not-found" or "nodeid-required")); return true;