aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_pep.lua
Commit message (Collapse)AuthorAgeFilesLines
* plugins: Use integer config API with interval specification where sensibleKim Alvefur2023-07-171-3/+3
| | | | | | | Many of these fall into a few categories: - util.cache size, must be >= 1 - byte or item counts that logically can't be negative - port numbers that should be in 1..0xffff
* plugins: Prefix module imports with prosody namespaceKim Alvefur2023-03-241-13/+13
|
* mod_pep: Pass node/service objects to broadcaster when resending last itemMatthew Wild2023-03-221-1/+1
| | | | | | This gives the broadcaster access to the node configuration, which is now important for itemreply. It probably also fixes a bug with the notify_* node config options?
* mod_pubsub, mod_pep: Support per-node configurable inclusion of publisherMatthew Wild2023-03-221-0/+7
| | | | | | | | | | | | | | | | | This matches ejabberd's behaviour, using the 'pubsub#itemreply' config option. Although the current definition of this option in the specification is not as clear as it could be, I think matching what existing deployments do is the best option to resolve the ambiguity and reduce fragmentation. We should update the spec to be clearer about how to use and interpret this option. The 'expose_publisher' option for mod_pubsub is now an override (always expose or never expose). If unset, it will use the per-node config (which defaults to not exposing). Thanks to Link Mauve, edhelas and goffi for sparking this feature.
* mod_pep: Fix typo in comment [codespell]Kim Alvefur2022-02-041-1/+1
|
* mod_pep: Clarify purpose of fallback serviceKim Alvefur2022-02-031-0/+7
| | | | | Extra-extra obvious that no interaction with this should lead to persisted changes
* mod_pep: Correct initialization of fallback serviceKim Alvefur2022-02-031-8/+6
| | | | | I'm not sure what went wrong here, copy-paste mistake? Doesn't matter as long as nobody can create nodes on this service.
* util.pubsub: Fix item store resize to "max"Kim Alvefur2022-01-061-0/+1
| | | | | Previously this would end up passing the "max" directly to the underlying storage.
* Merge 0.11->trunkKim Alvefur2021-12-201-10/+52
|\
| * mod_pep: Wipe pubsub service on user deletion0.11.11Kim Alvefur2021-11-041-0/+15
| | | | | | | | | | | | | | Data is already wiped from storage, but this ensures everything is properly unsubscribed, possibly with notifications etc. Clears recipient cache as well, since it is no longer relevant.
| * mod_pep: Prevent creation of services for non-existent usersKim Alvefur2021-11-041-0/+15
| | | | | | | | | | Using a dedicated service should give identical behavior, except for a possible timing difference in the user existence lookup.
| * mod_pep: Limit possible growth of node subscription infoKim Alvefur2021-11-041-2/+5
| |
| * mod_pep: Limit possible growth of number of pubsub servicesKim Alvefur2021-11-041-2/+16
| |
| * mod_pep: Don't pass pubsub services across reloadsKim Alvefur2021-11-041-6/+0
| | | | | | | | Ensures configuration is refreshed, releases some memory.
* | mod_pep: Set correct jid attr on node disco itemsKim Alvefur2021-12-071-0/+1
| | | | | | | | | | It was previously set to the hostname, not the users bare JID which would be correct.
* | mod_pubsub,mod_pep: Advertise maximum number of items via XEP-0122Kim Alvefur2021-10-201-0/+7
| | | | | | | | | | | | Clients would generally be using the "max" symbol instead of discovering this, but this also gets us validation and earlier rejection of out of bounds values.
* | mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436Kim Alvefur2021-10-191-0/+3
| | | | | | | | | | | | | | | | Default left as 'never' in mod_pubsub to preserve the previous behavior. Unclear if this is desirable, but can always be changed later. In mod_pep this allows turning off the automatic resending of most recent item.
* | mod_pep: Remove now unused util.cache importKim Alvefur2021-07-251-1/+0
| |
* | mod_pep: Remove use of RLU cache when persist_items was set to falseKim Alvefur2021-07-211-8/+3
| | | | | | | | | | | | | | | | This behavior came from some confusion over the meaning of persist_items. The correct behavior is that items are only stored when it is set to true. When set to false, the service becomes a "pure" publish-subscribe service, where items are forgotten immediately after broadcasting.
* | mod_pubsub,mod_pep: Support "max" as 'pubsub#max_items'Kim Alvefur2021-06-091-3/+11
| | | | | | | | | | | | Fixes #1643 API change: The argument to archive_itemstore() changes type to integer
* | Merge 0.11->trunkKim Alvefur2021-05-161-12/+0
|\|
| * mod_pep: Remove obsolete node restoration code (now done by util.pubsub)Kim Alvefur2021-05-161-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | Originally added in 202b9951b037 but util.pubsub gained a better method in 6c2c2fc4b8dd since then, which mod_pep uses since 9194431b6447 which should have deleted this. All these :create calls would have failed with a 'conflict' error, since the nodes had already been created. This was never noticed because of missing error handling. Also note that this code did not restore node configuration.
* | Merge 0.11->trunkKim Alvefur2021-02-151-0/+1
|\|
| * mod_pep: Advertise base pubsub feature (fixes #1632)0.11.8Kim Alvefur2021-02-151-0/+1
| | | | | | | | | | Noticed while discussing feature discovery in Gajim Thanks lovetox
* | Merge 0.11->trunkKim Alvefur2020-02-271-1/+1
|\|
| * mod_pubsub, mod_pep: Ensure correct number of children of <item/> (fixes #1496)Kim Alvefur2020-02-271-1/+1
| |
* | Merge 0.11->trunkKim Alvefur2019-12-231-34/+17
|\|
| * mod_pep: Handle presence subscriptions in filter (fixes #1372)Kim Alvefur2019-06-101-34/+17
| | | | | | | | Take two on 045209b41b3a
* | mod_pep: Only log when creating new pubsub servicesKim Alvefur2019-07-091-1/+1
| | | | | | | | | | | | | | Once upon a time get_pep_service() would get called with random bare JIDs and remote hostnames, which is why it was logged this way. This seems to have been fixed, so it's not as useful anymore. It's still useful to know when it creates a new service object.
* | mod_pep: Log node name instead of payloadKim Alvefur2019-06-161-1/+1
| | | | | | | | Having the node logged is more useful and less problematic for privacy
* | Merge 0.11->trunkKim Alvefur2019-06-101-5/+10
|\ \ | |/ |/|
| * Merge 0.11->trunkKim Alvefur2019-05-301-39/+16
| |\
| * \ Merge 0.11->trunkKim Alvefur2019-02-221-1/+3
| |\ \
| * | | mod_pep: Set an 'id' on notificationsKim Alvefur2018-12-231-1/+3
| | | | | | | | | | | | | | | | mod_pubsub got this in f2d35eee69c9
| * | | mod_pep: Add some spacing between blocks in broadcaster to improve readabilityKim Alvefur2018-12-231-0/+3
| | | |
| * | | mod_pep: Move broadcaster code around to be more like in mod_pubsubKim Alvefur2018-12-231-3/+6
| | | | | | | | | | | | | | | | This eases comparing and contrasting these two modules.
| * | | mod_pep: Remove incorrect features advertised on the bare hostKim Alvefur2018-11-011-3/+0
| | | |
* | | | mod_pep: Revert 045209b41b3a, caused a regressionKim Alvefur2019-06-101-17/+37
| |_|/ |/| | | | | | | | | | | | | | Adding in all presence based subscriptions in the broadcaster caused resend_last_item() to unintentionally send out more notifications than it should have.
* | | mod_pep: Handle presence based subscription outside of util.pubsub (fixes #1372)Kim Alvefur2019-05-301-37/+17
| |/ |/| | | | | | | | | | | | | | | Subscriptions were updated for each incoming presence stanza from contacts. Each subscription change triggered a configuration save, which would filter out the presence based subscriptions and usually end up replacing the existing data with identical data. With many subscribed nodes this adds up to a fair bit of IO bound work that is avoided by keeping them separate.
* | mod_pep: Simplify configuration for node data (fixes #1320)Kim Alvefur2019-02-221-1/+3
|/
* pubsub: Set pubsub#title as name attribute in disco#items (fixes #1226)Kim Alvefur2018-10-301-1/+1
|
* mod_pep: Add automatic subscriptions on node creation (fixes #1222)Kim Alvefur2018-10-201-1/+21
| | | | | Replaces automatic node creation on subscription, since this casues problems when trying to keep nodes private or other specific settings.
* mod_pep: Add PEP service owners username in configuration to ease identificationKim Alvefur2018-10-201-0/+1
|
* mod_pep: Remove use of recipients table for signaling pending disco#itemsKim Alvefur2018-10-231-16/+7
| | | | | | | | | | It stored the caps hash as a string in the recipients table while waiting for a disco#info response, then replaces it with the set of nodes that had +notify. This mixing of types is bad, so here it gets removed. This can be improved once an IQ tracking API (#714) is added.
* mod_pep: Add all pubsub service objects to item API in order to behave ↵Kim Alvefur2018-10-201-0/+4
| | | | across reloads
* mod_pep: Simplify codeMatthew Wild2018-08-181-2/+1
|
* mod_pep: Remove feature for persistence already added elsewereKim Alvefur2018-08-181-1/+0
| | | | This is added in pubsub.lib
* mod_pep: Remove already included access model featureKim Alvefur2018-08-181-1/+0
| | | | access-* is added in pubsub.lib based on node defaults
* mod_pep: Respect setting for whether to include payload in notificationsKim Alvefur2018-08-161-0/+5
|
* mod_pep: Respect settings for which kinds of notifications to sendKim Alvefur2018-08-161-1/+6
|