aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
Commit message (Collapse)AuthorAgeFilesLines
* mod_posix: Move everything to util.startupKim Alvefur2024-03-231-112/+1
| | | | | | | | | | | | | | | | | | | This allows greater control over the order of events. Notably, the internal ordering between daemonization, initialization of libunbound and setup of signal handling is sensitive. libunbound starts a separate thread for processing DNS requests. If this thread is started before signal handling has been set up, it will not inherit the signal handlers and instead behave as it would have before signal handlers were set up, i.e. cause the whole process to immediately exit. libunbound is usually initialized on the first DNS request, usually triggered by an outgoing s2s connection attempt. If daemonization happens before signals have been set up, signals may not be processed at all.
* mod_bosh: Set base_type on sessionMatthew Wild2024-03-171-1/+1
| | | | | This fixes a traceback with mod_saslauth. Ideally we move this to util.session at some point, though.
* mod_pubsub: Ignore shadowed variable [luacheck]Kim Alvefur2024-03-061-0/+1
|
* mod_pubsub: Add shell commands to create and list nodesMatthew Wild2024-03-061-0/+42
|
* mod_posix: Move POSIX signal handling into util.startup to avoid raceKim Alvefur2024-03-021-50/+0
| | | | | | | | | | When libunbound is initialized, it spawns a thread to work in. In case a module initializes libunbound, e.g. by triggering a s2s connection, Prosody would not handle signals, instead immediately quit on e.g. the reload (SIGHUP) signal. Likely because the libunbound thread would not have inherited the signal mask from the main Prosody thread. Thanks Menel, riau and franck-x for reporting and help narrowing down
* mod_s2s: Comment on why we avoid hostnames in stanza bounce messagesKim Alvefur2024-02-241-0/+2
|
* mod_cron: Fix log format to account for float that was integer beforeKim Alvefur2024-02-241-1/+1
|
* mod_server_contact_info: Update to publish fields via new mod_server_infoMatthew Wild2024-02-231-12/+25
|
* mod_server_info: New module to manage the serverinfo disco extension formMatthew Wild2024-02-231-0/+55
| | | | | | | | This allows multiple modules to populate the form dynamically. Currently the form is "owned" by mod_server_contact_info, which prevents other modules from contributing to it. A further commit will port mod_server_contact_info to use this module.
* mod_s2s_auth_certs: Handle potential string errorKim Alvefur2024-02-211-3/+6
| | | | | conn:ssl_peerverification() can now return a single error in case the connection has been closed for whatever reason
* mod_cron: Allow configuring various "internal" delay parametersMatthew Wild2024-02-201-2/+10
| | | | | Notably, it is now possible to add a randomized spread factor to the check interval.
* mod_c2s: Fix error on role change on Components (thanks Menel)Kim Alvefur2024-02-171-0/+3
|
* mod_smacks: Adjust buckets for resumption age statisticKim Alvefur2024-02-161-1/+1
| | | | | | | | | Given that there are recommendations floating around recommending 24 hours session lifetime, having buckets up to 10 minutes wouldn't be useful in that case. Would be nice if we had some way to automatically assign suitable number series for buckets, scaled to what the configuration might be.
* mod_storage_internal: Fix off-by-one when searching archive forKim Alvefur2024-02-151-6/+2
| | | | | Fixes a test case provided by MattJ where the very first item matched by a 'start' timestamp was not returned.
* mod_s2s_auth_dane_in: Try single TLSA lookup per draft-ietf-dance-client-authKim Alvefur2024-01-111-4/+11
| | | | Moves some complexity from the implementation into DNS operations.
* mod_s2s_auth_dane_in: Simplify result processingKim Alvefur2024-01-111-18/+26
| | | | Fewer loops
* MUC: Record reason for affiliation changes and return in list (fixes #1227)Kim Alvefur2021-08-081-4/+11
|
* mod_invites: Fix argument handlingKim Alvefur2024-01-211-1/+1
| | | | | Not sure what the next() was supposed to do. Reject unknown --options perhaps?
* mod_invites: Show short help instead of traceback on missing hostnameKim Alvefur2024-01-131-2/+3
|
* mod_invites: Show help if --help passed instead of hostnameKim Alvefur2024-01-131-18/+25
| | | | | Because I couldn't guess the right way to get the help message without reading the source twice.
* mod_invites: Allow specifying invite ttl on command lineKim Alvefur2024-01-131-1/+3
| | | | Was missing a way to pass TTL via command or shell.
* Merge 0.12->trunkKim Alvefur2023-12-171-0/+4
|\
| * mod_disco: Advertise disco#info and #items on bare JIDs to fix #1664Kim Alvefur2023-12-171-0/+4
| | | | | | | | | | | | | | | | Having to add these in *there* places seems less than ideal. I would also think that advertising disco#info is a bit redundant, since it is a requirement for everything in XMPP and if it was missing you would get an error back.
* | mod_storage_internal, tests: Fix before/after combined with the 'reverse' flagMatthew Wild2023-12-121-0/+1
| |
* | mod_http_errors: Simplify CSS via built-in dark modeKim Alvefur2023-12-061-2/+2
| |
* | mod_user_account_management: Clear pending deletion if account re-enabledMatthew Wild2023-12-071-0/+6
| |
* | mod_saslauth: Fire event per SASL stepMatthew Wild2023-12-051-2/+5
| | | | | | | | | | This matches the behaviour of the newer mod_sasl2 implementation. It allows plugins to observe (and potentially, with caution, modify) the SASL exchange.
* | mod_c2s: Make c2s_timeout timer reachable to allow access from other modulesKim Alvefur2023-12-031-1/+3
| | | | | | | | E.g. the timeout could be extended under certain conditions.
* | mod_s2s: Close connection on smacks timeoutKim Alvefur2023-12-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | This merges the mod_s2s_smacks_timeout behavior from prosody-modules This event is fired by mod_smacks when the connection has not responded to an ack-request for a period of time defaulting to 30 seconds, indicating that the connection has become stuck or non-responsive. Closing it prevents routing further messages via this connection and frees resources. A stuck connection may otherwise remain until for a time determined by the OS TCP subsystem, which can be quite long.
* | mod_saslauth: Fire event at start of authentication attemptKim Alvefur2023-12-011-0/+6
| | | | | | | | | | | | As extension point for rate limiting and similar checks, so they can hook a single event instead of <{sasl1}auth> or stream features, which might not be fired in case of SASL2 or e.g. HTTP based login.
* | mod_user_account_management: Fire events with a fake (not destroyed) sessionMatthew Wild2023-11-301-3/+24
| | | | | | | | | | | | | | Previously these events fired after the session had been destroyed, which removes many of the useful properties. The ones I chose to preserve here are the ones used by the community module mod_audit, which seems like a good baseline.
* | mod_cron: Rebuild with new LuaFormatter settings (tabs!)Kim Alvefur2023-11-301-77/+59
| |
* | mod_user_account_management: Add support for soft-deletion of accounts via IBRMatthew Wild2023-11-301-13/+137
| | | | | | | | | | | | | | | | | | | | | | | | When registration_delete_grace_period is set, accounts will be disabled for the specified grace period before they are fully deleted. During the grace period, accounts can be restored with the user:restore() shell command. The primary purpose is to prevent accidental or malicious deletion of a user's account, which is traditionally very easy for any XMPP client to do with a single stanza.
* | mod_cron: Update Teal source and rebuildMatthew Wild2023-11-301-77/+75
| |
* | mod_cron: Rename variable to fix shadowing (#luacheck)Matthew Wild2023-11-301-2/+2
| |
* | mod_cron: Add shell command to list registered cron tasks with statusMatthew Wild2023-11-301-0/+28
| |
* | mod_saslauth: Allow plugins to override return SASL condition/textMatthew Wild2023-11-301-1/+3
| |
* | luacheckrc, mod_http_file_share: Update for module API change (once->on_ready)Matthew Wild2023-11-301-1/+1
| |
* | usermanager, mod_auth_internal_hashed: Support metadata when disabling a userMatthew Wild2023-11-301-1/+2
| | | | | | | | | | This allows us to store a time, actor, comment and/or reason why an account was disabled, which seems a generally useful thing to support.
* | mod_mam: Use for loop in metadata queryKim Alvefur2023-11-261-4/+2
| | | | | | | | | | | | Some storage drivers will perform cleanup after the last iteration, but if only one step is taken this might be delayed until the garbage collector gets to it.
* | mod_tokenauth: Ignore invalid grants in storage that have no idMatthew Wild2023-11-291-1/+1
| |
* | mod_invites: Fix linter issuesMatthew Wild2023-11-291-4/+4
| |
* | mod_admin_shell: Fix linter issuesMatthew Wild2023-11-291-24/+26
| |
* | mod_invites: Use new shell-command APIMatthew Wild2023-11-291-22/+25
| |
* | mod_admin_shell: Remove verbose loggingMatthew Wild2023-11-291-4/+0
| |
* | mod_admin_shell: Remove timer:info() (it's been debug:timers() for some time)Matthew Wild2023-11-291-3/+0
| |
* | mod_admin_shell: Support for 'shell-command' items (global and per-host)Matthew Wild2023-11-291-0/+169
| | | | | | | | | | | | This should simplify adding shell commands from other modules, which will reduce the growth of mod_admin_shell and make it easier for community modules to expose commands too.
* | mod_admin_shell: Refactor help to data structures for extensibilityMatthew Wild2023-11-291-157/+239
| | | | | | | | | | This makes it easier for commands added by other modules to add to the help output, for example.
* | mod_storage_internal: Clear archive item count cache after experimental trimKim Alvefur2023-11-261-1/+3
| | | | | | | | | | | | | | The previous count would be invalid at this point. Should be possible to math out how many items are left, but this is left as future work.
* | mod_blocklist: Remove weak cache (and increase default LRU cache size)Kim Alvefur2023-11-261-18/+10
| | | | | | | | | | | | | | Weak tables are said to have suboptimal performance, so we might as well get replace it with an increased default LRU cache size. Sorry about the 'and'