diff options
author | Matthew Wild <mwild1@gmail.com> | 2024-11-08 10:24:42 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2024-11-08 10:24:42 +0000 |
commit | f8c85b7c1e1343176004c52ea3e745053274639f (patch) | |
tree | 8df29ecda6fb1fdf5a17bd875452d8350da78a4d | |
parent | 2c61955e3aa384926c02322505e22cb446c333d5 (diff) | |
download | prosody-f8c85b7c1e1343176004c52ea3e745053274639f.tar.gz prosody-f8c85b7c1e1343176004c52ea3e745053274639f.zip |
mod_bookmarks: Suppress error publishing empty legacy bookmarks w/ no PEP node
It appears that when:
1) The user has no bookmarks 2 node in PEP
2) The client publishes an empty bookmark set to a legacy bookmarks location
3) mod_bookmarks will attempt to purge items from the non-existent node and
log an error about the failure (item-not-found).
This new code will suppress an item-not-found error from the purge operation
in the empty-bookmarks case, and adds a log message for any other error (this
is helpful because the existing log message confusingly says it was an error
*publishing* to the node, which isn't always accurate).
-rw-r--r-- | plugins/mod_bookmarks.lua | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/plugins/mod_bookmarks.lua b/plugins/mod_bookmarks.lua index d67915f8..8fe3166a 100644 --- a/plugins/mod_bookmarks.lua +++ b/plugins/mod_bookmarks.lua @@ -167,10 +167,15 @@ local function publish_to_pep(jid, bookmarks, synchronise) if synchronise then -- If we set zero legacy bookmarks, purge the bookmarks 2 node. module:log("debug", "No bookmark in the set, purging instead."); - return service:purge(namespace, jid, true); - else - return true; + local ok, err = service:purge(namespace, jid, true); + -- It's okay if no node exists when purging, user has + -- no bookmarks anyway. + if not ok and err ~= "item-not-found" then + module:log("error", "Failed to clear items from bookmarks 2 node: %s", err); + return ok, err; + end end + return true; end -- Retrieve the current bookmarks2. |