Type: New Feature
Affects Version/s: ejabberd 2.0.3
Add subscription option support to mod_pubsub.
This requires changes to the pubsub_state schema, which has a number
of echoes through the node plugin system. To ameliorate future pain,
get_state and set_state node calls have been removed, leaving only
get_states where the schema is leaked programatically.
- Only pubsub#expire is handled right now.
- Options are parsed in mod_pubsub and passed into node.
- mod_pubsub refactored to support better processing of stanzas for
- As a proof-of-concept, "pubsub#expire" options are supported,
which stop delivering messages after the expiry time.
- node subscribe_node arity changed to support options argument.
- node set_subscription calls take an additional argument for
- node get_options calls return a tuple of
- Don't export get_state/3 and set_state/1 from gen_pubsub_node. Use
the more specific functions instead.
- added node subscription_options/0 call for default node options.
- pubsub_state record has an `options' field now, which is added if
necessary when ejabberd starts up.
- node XForm stuff renamed and split to be used for subscription
options, too. This could be cleaned up a lot.
- Work around a bug caused by ejabberd's use of "node_type" in config.
- Return the result of set_node as the result of node configuration.
- Handle mnesia:abort calls in mod_pubsub:node_call/3.
- Drop resource when setting and getting subscription in
- Affiliation load is kind of awkward. Have another look at it.
(node:get/set subscription fns).
- When a subscription expires it should probably be removed from the
- A node should be able to support required options, with mod_pubsub
supplying the negotiation.