# HG changeset patch # User Kim Alvefur # Date 1641849355 -3600 # Node ID 024cc878f472a72d8a10200d25779daf2eaea84d # Parent e7639625a848344f4eddbce714f2b96580f6e005 mod_bookmarks: Block publishing to older XEP-0402 v0.3.0 node Having both the :0 and :1 nodes would be especially awkward, since there is no upgrade path for this case. In theory, these should be rare since no clients should have been doing XEP-0402 unless mod_bookmarks(2) was enabled. This was guesstimated to be rare with most clients doing XEP-0048 with Private XML. diff -r e7639625a848 -r 024cc878f472 plugins/mod_bookmarks.lua --- a/plugins/mod_bookmarks.lua Mon Jan 10 16:53:58 2022 +0100 +++ b/plugins/mod_bookmarks.lua Mon Jan 10 22:15:55 2022 +0100 @@ -10,6 +10,7 @@ local private_storage = module:open_store("private", "map"); local namespace = "urn:xmpp:bookmarks:1"; +local namespace_old = "urn:xmpp:bookmarks:0"; local namespace_private = "jabber:iq:private"; local namespace_legacy = "storage:bookmarks"; local xmlns_pubsub = "http://jabber.org/protocol/pubsub"; @@ -271,7 +272,13 @@ end local publish = pubsub:get_child("publish"); - if publish == nil or publish.attr.node ~= namespace_legacy then + if publish == nil then return end + if publish.attr.node == namespace_old then + session.send(st.error_reply(stanza, "modify", "not-allowed", + "Your client does XEP-0402 version 0.3.0 but 0.4.0+ is required")); + return true; + end + if publish.attr.node ~= namespace_legacy then return; end