Mercurial > prosody-hg
comparison plugins/mod_pubsub/pubsub.lib.lua @ 10356:0a2d7efca039
util.pubsub, pubsub.lib and tests: Add text to precondition-not-met error (fixes #1455)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sun, 27 Oct 2019 14:45:57 +0000 |
| parents | 4e4ce7400b39 |
| children | e1de29c41259 |
comparison
equal
deleted
inserted
replaced
| 10355:cb9755d7a36e | 10356:0a2d7efca039 |
|---|---|
| 5 local set = require "util.set"; | 5 local set = require "util.set"; |
| 6 local st = require "util.stanza"; | 6 local st = require "util.stanza"; |
| 7 local it = require "util.iterators"; | 7 local it = require "util.iterators"; |
| 8 local uuid_generate = require "util.uuid".generate; | 8 local uuid_generate = require "util.uuid".generate; |
| 9 local dataform = require"util.dataforms".new; | 9 local dataform = require"util.dataforms".new; |
| 10 local errors = require "util.error"; | |
| 10 | 11 |
| 11 local xmlns_pubsub = "http://jabber.org/protocol/pubsub"; | 12 local xmlns_pubsub = "http://jabber.org/protocol/pubsub"; |
| 12 local xmlns_pubsub_errors = "http://jabber.org/protocol/pubsub#errors"; | 13 local xmlns_pubsub_errors = "http://jabber.org/protocol/pubsub#errors"; |
| 13 local xmlns_pubsub_owner = "http://jabber.org/protocol/pubsub#owner"; | 14 local xmlns_pubsub_owner = "http://jabber.org/protocol/pubsub#owner"; |
| 14 | 15 |
| 32 ["precondition-not-met"] = { "cancel", "conflict", nil, "precondition-not-met" }; | 33 ["precondition-not-met"] = { "cancel", "conflict", nil, "precondition-not-met" }; |
| 33 ["invalid-item"] = { "modify", "bad-request", "invalid item" }; | 34 ["invalid-item"] = { "modify", "bad-request", "invalid item" }; |
| 34 }; | 35 }; |
| 35 local function pubsub_error_reply(stanza, error) | 36 local function pubsub_error_reply(stanza, error) |
| 36 local e = pubsub_errors[error]; | 37 local e = pubsub_errors[error]; |
| 38 if not e and errors.is_err(error) then | |
| 39 e = { error.type, error.condition, error.text, error.pubsub_condition }; | |
| 40 end | |
| 37 local reply = st.error_reply(stanza, t_unpack(e, 1, 3)); | 41 local reply = st.error_reply(stanza, t_unpack(e, 1, 3)); |
| 38 if e[4] then | 42 if e[4] then |
| 39 reply:tag(e[4], { xmlns = xmlns_pubsub_errors }):up(); | 43 reply:tag(e[4], { xmlns = xmlns_pubsub_errors }):up(); |
| 40 end | 44 end |
| 41 return reply; | 45 return reply; |
