Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • P python-nbxmpp
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 11
    • Issues 11
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • gajim
  • python-nbxmpp
  • Issues
  • #117

Closed (moved)
(moved)
Open
Created Feb 07, 2021 by Paul Aurich@darkrain42

Native Bookmarks shouldn't set max_items to 'max' without disco#info / server support

The native bookmarks module currently (as of b1cb21dd) unconditionally tries to set max_items to "max", even when the account doesn't advertise support for this (from XEP-0060):

<var>
  <name>http://jabber.org/protocol/pubsub#config-node-max</name>
  <desc>Server supports `max` being set as a value for node configuration options: pubsub#max_items, pubsub#item_expire and pubsub#children_max</desc>
  <doc>XEP-0060</doc>
</var>

This causes bookmark publishing to fail w/ Prosody, which rejects the bookmarks:

<iq xmlns="jabber:client" type="set" id="4eb48ffa-0cf5-4d30-b323-8346d4b5e643">
  <pubsub xmlns="http://jabber.org/protocol/pubsub">
    <publish node="urn:xmpp:bookmarks:1">
      <item id="foo@conference.localhost">
        <conference xmlns="urn:xmpp:bookmarks:1" name="d">
          <nick>f</nick>
        </conference>
      </item>
    </publish>
    <publish-options>
      <x xmlns="jabber:x:data" type="submit">
        <field var="FORM_TYPE" type="hidden">
          <value>http://jabber.org/protocol/pubsub#publish-options</value>
        </field>
        <field var="pubsub#notify_delete">
          <value>true</value>
        </field>
        <field var="pubsub#notify_retract">
          <value>true</value>
        </field>
        <field var="pubsub#persist_items">
          <value>true</value>
        </field>
        <field var="pubsub#max_items">
          <value>max</value>
        </field>
        <field var="pubsub#access_model">
          <value>whitelist</value>
        </field>
        <field var="pubsub#send_last_published_item">
          <value>never</value>
        </field>
      </x>
    </publish-options>
  </pubsub>
</iq>

<iq xmlns="jabber:client" type="error" id="4eb48ffa-0cf5-4d30-b323-8346d4b5e643" to="admin@localhost/gajim.D0PK8FUZ">
  <error type="modify">
    <bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
    <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">max_items: not a number</text>
</error>
</iq>

(I found this while testing an updated bookmarks plugin for Prosody to support all the various storage methods)

Edited Feb 07, 2021 by Paul Aurich
Assignee
Assign to
Time tracking