aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
Commit message (Collapse)AuthorAgeFilesLines
* mod_roster: do not store number in attributeJonas Schäfer6 days1-1/+1
| | | | | | | | | Attributes are strings. That definitely is a number. So we tostring() it. This is important when the API becomes stricter, for whatever reason that might happen. Practically, this moves the overhead of converting to a string to a place where it is visible.
* mod_admin_shell: Report when a module is already loadedKim Alvefur7 days1-0/+6
| | | | Hopefully less confusing than "Module loaded onto 0 hosts"
* mod_admin_shell: Refactor end of module:loadKim Alvefur7 days1-1/+4
| | | | Meant to improve clarity and make improving easier
* Merge 0.12->trunkMatthew Wild7 days1-6/+4
|\
| * MUC: optimizations for broadcast of visitor presence (thanks Jitsi team)origin/0.120.12Matthew Wild7 days1-6/+4
| | | | | | | | | | This avoids doing performing unnecessary work in the case of visitors joining a MUC, no functionality changes are intended.
* | mod_s2s: Really fix logging of outgoing stanza queue countsKim Alvefur11 days1-2/+2
| | | | | | | | | | Some confusion happened in 42b98ee73ca8, possibly because .count() returns the items?
* | mod_s2s: Clone queued outgoing stanzas to prevent changesKim Alvefur12 days1-1/+1
| | | | | | | | | | | | | | This clone call was lost in 902d25cd0557 Affects e.g. presence broadcasts, where the same stanza is sent many times while mutating the 'to' attribute.
* | mod_s2s: Fix counting items in outgoing stanza queue (in logs)Kim Alvefur12 days1-2/+2
| |
* | mod_s2s: Limit size of outgoing stanza queueKim Alvefur13 days1-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This queue is used to buffer stanzas while waiting for an outgoing s2s connection to be established. Limit it to prevent excessive memory usage. Default chosen to approximate how many average stanzas fits in the server_epoll default max_send_buffer_size of 32 MiB Returns a custom error instead of the default core.stanza_router "Communication with remote domains is not enabled" from is sent back, which does not describe what is happening here. Closes #1106
* | mod_pubsub: Pass metadata directly into formKim Alvefur2024-11-081-12/+11
| | | | | | | | | | Reduces duplication and need to edit in two places when adding another metadata field.
* | mod_pubsub: Use new metadata methodKim Alvefur2024-11-082-16/+16
| | | | | | | | | | No longer bypasses access control to retrieve this config subset, which is also explicitly named in the service config now.
* | Merge 0.12->trunkMatthew Wild2024-11-081-5/+10
|\|
| * mod_bookmarks: Clarify log messages on failure to sync to modern PEP bookmarksMatthew Wild2024-11-081-2/+2
| | | | | | | | | | | | | | | | | | Previously the error messages said that it failed to "publish" to PEP, but sometimes a sync involves removing items, which can be confusing. The log was also the same for both legacy PEP and private XML bookmarks. Having different log messages makes it easier to debug the cause and location of any sync errors.
| * mod_bookmarks: Suppress error publishing empty legacy bookmarks w/ no PEP nodeMatthew Wild2024-11-081-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | mod_http_file_share: Revert 9c62ffbdf2aeKim Alvefur2024-11-021-2/+2
| | | | | | | | No, that wasn't running in a thread, but in a next tick timer.
* | Merge 0.12->trunkKim Alvefur2024-11-021-5/+7
|\|
| * mod_smacks: Destroy timed out session in async context (fixes #1884)Kim Alvefur2024-11-021-8/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Prevents ASYNC-01 due to storage interactions in a timer. Also considered modifying mod_c2s to allow passing arbitrary closures into its runner thread but this seems like a big step away from the current code for just this module. Also considered creating a dedicated runner in mod_smacks, but ensuring continuity across module reloads might be tricky. We could further improve this in the next major version.
* | mod_admin_shell: Reject attempt to add or remove roles for unrelated hostsKim Alvefur2024-11-011-0/+4
| | | | | | | | The three-argument version seems to be a left-over from 0.12
* | mod_authz_internal: Hint at roles for external JIDs being read-onlyKim Alvefur2024-11-011-1/+1
| | | | | | | | | | Roles for JIDs outside the current host are derived from configuration only with this module.
* | mod_admin_shell: Allow assigning roles to arbitrary JIDs when supportedKim Alvefur2024-11-011-1/+5
| | | | | | | | mod_authz_internal does not support this
* | mod_pubsub: Move precondition error wrangling out of util.pubsubKim Alvefur2024-10-291-3/+4
| | | | | | | | | | | | | | | | | | Removes dependency on util.error from util.pubsub which was only used for this one special case. Line count reduction! Would be even nicer if templating could be done by util.error itself.
* | util.error: Use is_error() instead of is_err() everywhereKim Alvefur2024-10-291-1/+1
| | | | | | | | Continuation of 4b39691a274e
* | mod_pubsub: Allow passing additional error contextKim Alvefur2024-10-271-4/+4
| | | | | | | | Sometimes it is useful to pass additional information along.
* | mod_pubsub: Use error registryKim Alvefur2024-10-271-10/+5
| | | | | | | | | | | | | | | | | | | | This is what util.error was made for! This replaces the custom error stanza builder with common code in util.stanza that knows enough about util.error and namespaced errors. Some awkwardness remains in the way util.pubsub returns conflicting form fields.
* | Merge 0.12->trunkKim Alvefur2024-10-261-10/+10
|\|
| * mod_admin_adhoc: Fix log messages for reloading modules.Aidan Epstein2024-09-291-10/+10
| | | | | | | | Also rename for loop item so that it doesn't shadow module variable.
* | mod_invites_adhoc: Add password reset commandKim Alvefur2024-10-201-0/+30
| | | | | | | | | | | | To support cases where the admin does not have easy access to the command line to generate a password reset invite for someone who forgot their password.
* | mod_pubsub: Check new role framework for node creation privilegesKim Alvefur2024-10-131-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | This enables granting regular users permission to create nodes via the new roles framework. Previously this required either making everyone an admin or writing a custom mod_pubsub variant with different permission details. Previous default behavior of only allowing creation by admin is kept as to not give out unexpected permissions on upgrade, but could be reevaluated at a later time. Fixes #1324
* | MUC: Fix error with nonlegacy hats.Aidan Epstein2024-09-281-1/+1
| |
* | mod_csi: Update correct variables when counting statesKim Alvefur2024-09-211-2/+2
| |
* | mod_csi: Use same label name for gauge as for older counterKim Alvefur2024-09-061-1/+1
| | | | | | | | Consistency.
* | Merge 0.12->trunkKim Alvefur2024-08-301-1/+1
|\|
| * mod_invites: Fix traceback when token_info isn’t setEmmanuel Gil Peyrot2024-07-311-1/+1
| |
* | mod_admin_shell: Prevent traceback due to type errorKim Alvefur2024-08-261-1/+2
| | | | | | | | Here too
* | mod_s2s: Fix traceback due to type confusion (Thanks Menel)Kim Alvefur2024-08-261-1/+2
| | | | | | | | The code assumed a 2-d sparse array but it could also be a string.
* | mod_csi: Optimize metrics collection (prematurely)Kim Alvefur2024-08-181-9/+10
| | | | | | | | I did not measure, but this should be way fewer function calls.
* | mod_csi: Rename unused loop variables to '_' [luacheck]Kim Alvefur2024-08-171-2/+2
| |
* | mod_csi: Count how many sessions are using CSI and their stateKim Alvefur2024-08-171-0/+20
| |
* | mod_s2s_bidi: Include empty list of labels in metricsKim Alvefur2024-08-161-3/+3
| | | | | | | | | | Throws error attempting to append the nil label list to an array for host-scoped metrics.
* | mod_s2s_bidi: Collect some metricsKim Alvefur2024-08-111-0/+7
| |
* | mod_auth_internal_{hashed,plain}: Respect flag for disabled accounts in ↵Kim Alvefur2024-08-092-0/+6
| | | | | | | | | | | | | | test_password() This API method is used e.g. in HTTP modules which also should respect disabled accounts.
* | mod_c2s,mod_s2s: Advertise idle-seconds per XEP-0478Kim Alvefur2024-08-032-8/+37
| | | | | | | | | | | | | | | | This is the time after liveness checks are performed via the respective read-timeout event, which by default involves sending a space character but could be overridden e.g. as is done by mod_smacks. Only advertised, unsure what we would do with it.
* | MUC: Don't default component admins to being room ownersMatthew Wild2024-06-181-1/+1
| | | | | | | | | | | | | | | | | | | | This change has various technical and social benefits. If ownership of a MUC is really needed, it can be gained using the 'Set affiliation' ad-hoc command or prosodyctl shell. Example client incompatibility with the old behaviour: - https://github.com/monal-im/Monal/issues/1085
* | MUC: Add per-room PM restriction functionality (thanks Wirlaburla)Matthew Wild2024-05-232-0/+127
| | | | | | | | Based on mod_muc_restrict_pm in prosody-modules d82c0383106a
* | Merge 0.12->trunkKim Alvefur2024-04-271-2/+7
|\|
| * mod_admin_shell: Allow matching on host or bare JID in c2s:showKim Alvefur2023-03-311-2/+2
| | | | | | | | | | | | | | | | | | Only supporting exact match on full JID isn't helpful if you want to list sessions per host or user. Backport of 430333198e4c Fixes #1857
| * mod_blocklist: Drop blocked messages without error, option to restore ↵Kim Alvefur2024-04-271-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | compliant behavior From XEP-0191: > For message stanzas, the server SHOULD return an error, which SHOULD > be <service-unavailable/>. Following this may leak to a blocked JID that they have been blocked, which seems contrary to the goal of pretending to be perpetually offline.
* | mod_pep: Implement 'roster' (group) access_modelKim Alvefur2023-12-032-1/+24
| | | | | | | | | | | | | | Allows e.g. restricting your vcard4 to only family or similar. Notes: This does not include roster groups in the configuration form, so the client will have to get them from the actual roster.
* | mod_announce: Suppress luacheck warningsMatthew Wild2024-04-261-3/+3
| |
* | mod_announce: Add shell commands and APIs for sending to all/online/rolesMatthew Wild2024-04-241-3/+85
| |