Kim Alvefur <zash@zash.se> [Wed, 27 Mar 2024 19:33:11 +0100] rev 13471
util.startup: Fix exiting on pidfile trouble
prosody.shutdown() relies on prosody.main_thread, which has not been set
yet at this point.
Doing a clean shutdown might actually be harmful in case it tears down
things set up by the conflicting Prosody, such as the very pidfile we
were looking at.
Thanks again SigmaTel71 for noticing
Matthew Wild <mwild1@gmail.com> [Wed, 27 Mar 2024 15:39:03 +0000] rev 13470
Merge 0.12->trunk
Matthew Wild <mwild1@gmail.com> [Wed, 27 Mar 2024 15:35:15 +0000] rev 13469
prosodyctl check: Warn about invalid domain names in the config file
This ensures that domain names of virtual hosts and components are valid in
XMPP, and that they are encoded correctly.
Kim Alvefur <zash@zash.se> [Sun, 24 Mar 2024 21:32:00 +0100] rev 13468
util.startup: Abort before initialization of logging when started as root
Prevents creation of log files owned by the root user which could be
inaccessible once started correctly.
Kim Alvefur <zash@zash.se> [Sun, 24 Mar 2024 21:31:47 +0100] rev 13467
util.startup: Don't use not yet existent shutdown procedure when started as root (thanks SigmaTel71)
Kim Alvefur <zash@zash.se> [Sun, 24 Mar 2024 20:39:42 +0100] rev 13466
util.startup: Check root after detecting platform and reading config (thanks SigmaTel71)
Ensures that startup.detect_platform() runs so know whether to use the
POSIX method of checking the current user or something else. Also after
reading the config so we know whether the root override setting is set.
Kim Alvefur <zash@zash.se> [Sat, 23 Mar 2024 20:48:19 +0100] rev 13465
mod_posix: Move everything to util.startup
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.
Matthew Wild <mwild1@gmail.com> [Sun, 17 Mar 2024 10:10:24 +0000] rev 13464
mod_bosh: Set base_type on session
This fixes a traceback with mod_saslauth. Ideally we move this to util.session
at some point, though.
Kim Alvefur <zash@zash.se> [Sun, 10 Mar 2024 15:56:01 +0100] rev 13463
util.startup: Back out 598df17b8ebb
Broke signal handling again, such that an early s2s connection results
in libunbound catching signals and getting Prosody killed on e.g. SIGHUP
This returns to the situation where prosody --daemonize does not respond
to signals.
Kim Alvefur <zash@zash.se> [Wed, 06 Mar 2024 20:43:25 +0100] rev 13462
util.startup: Hook signals after daemonization
signalfds stop working with epoll after forking
hooking signals later should not affect anything
Kim Alvefur <zash@zash.se> [Wed, 06 Mar 2024 19:12:11 +0100] rev 13461
mod_pubsub: Ignore shadowed variable [luacheck]
Matthew Wild <mwild1@gmail.com> [Wed, 06 Mar 2024 17:38:21 +0000] rev 13460
mod_pubsub: Add shell commands to create and list nodes
Kim Alvefur <zash@zash.se> [Sat, 02 Mar 2024 14:14:27 +0100] rev 13459
core.features: Advertise that events are fired for SIGUSR1/2
Moved here from mod_posix since these events no longer originate there
Kim Alvefur <zash@zash.se> [Sat, 02 Mar 2024 14:08:47 +0100] rev 13458
util.startup: Fix firing of USR1/2 events
Kim Alvefur <zash@zash.se> [Sat, 02 Mar 2024 13:40:37 +0100] rev 13457
net.server: Restore epoll signalfd handling
Reverts 4a9a69659727
Kim Alvefur <zash@zash.se> [Sat, 02 Mar 2024 13:23:24 +0100] rev 13456
mod_posix: Move POSIX signal handling into util.startup to avoid race
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
Kim Alvefur <zash@zash.se> [Fri, 01 Mar 2024 19:22:49 +0100] rev 13455
net.server: Disable epoll signalfd handling by default until problems resolved
Kim Alvefur <zash@zash.se> [Fri, 01 Mar 2024 19:20:45 +0100] rev 13454
net.server_epoll: Log creation of signalfd handles at noise level
To aid in tracking down signalfd-related problems
Matthew Wild <mwild1@gmail.com> [Fri, 01 Mar 2024 17:22:29 +0000] rev 13453
util.bit53: Add bnot() method
Kim Alvefur <zash@zash.se> [Wed, 28 Feb 2024 22:31:06 +0100] rev 13452
util.signal: Fail signalfd() if unable to change signal mask
By aborting early, the failure should be brought to the attention
somehow.
Kim Alvefur <zash@zash.se> [Wed, 28 Feb 2024 22:24:09 +0100] rev 13451
net.server_epoll: Log failure to hook signals
To make any such failures noticeable
Kim Alvefur <zash@zash.se> [Tue, 27 Feb 2024 17:15:36 +0100] rev 13450
Merge 0.12->trunk
Kim Alvefur <zash@zash.se> [Tue, 27 Feb 2024 17:14:16 +0100] rev 13449
net.http.files: Validate argument to setup function
Fixes error in #1765 by throwing an error earlier
Kim Alvefur <zash@zash.se> [Sat, 24 Feb 2024 17:45:50 +0100] rev 13448
mod_s2s: Comment on why we avoid hostnames in stanza bounce messages
Kim Alvefur <zash@zash.se> [Sat, 24 Feb 2024 14:35:17 +0100] rev 13447
mod_cron: Fix log format to account for float that was integer before
Kim Alvefur <zash@zash.se> [Sat, 24 Feb 2024 14:32:59 +0100] rev 13446
mod_cron: Sync Teal source with 92301fa7a673
Yeah, it's weird to have two versions. Needing more build dependencies
is also something we want to avoid, so here we are.
Kim Alvefur <zash@zash.se> [Sat, 24 Feb 2024 01:00:44 +0100] rev 13445
util.signal: Wrap signalfd in an userdatum for gc handling etc
Kim Alvefur <zash@zash.se> [Sat, 24 Feb 2024 00:20:35 +0100] rev 13444
net.server_epoll: Support hooking signals via signalfd
Handling signal events the same way as all other events makes sense and
seems safer than the signal handling just jumping around in C and
messing with Lua states.
Kim Alvefur <zash@zash.se> [Sat, 24 Feb 2024 00:05:29 +0100] rev 13443
util.signal: Add support for signalfd(2) on Linux
signalfd allows handling signal events using the same method as sockets,
via file descriptors. Thus all signal dispatch can go through the same
main event loop as everything else, removing need for thread-scary
signal handling where execution would just jump to the signal handler
regardless of the state of Lua, and needing to keep track of Lua
states/threads.
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 22:45:42 +0000] rev 13442
features: Add mod_server_info
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 21:14:14 +0000] rev 13441
mod_server_contact_info: Update to publish fields via new mod_server_info
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 21:13:10 +0000] rev 13440
mod_server_info: New module to manage the serverinfo disco extension form
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.
Kim Alvefur <zash@zash.se> [Fri, 23 Feb 2024 16:38:05 +0100] rev 13439
util.strbitop: Add common_prefix_bits() to Teal interface description
Kim Alvefur <zash@zash.se> [Fri, 23 Feb 2024 16:35:21 +0100] rev 13438
util.hashes: Add missing entries to Teal interface description
Also sorted to match C source
Kim Alvefur <zash@zash.se> [Fri, 23 Feb 2024 16:33:08 +0100] rev 13437
util.crypto: Update Teal interface description to match C sources
Was missing some entries.
Rearranged to match order of entries in the C source Reg table.
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 12:16:03 +0000] rev 13436
tools/test_mutants.sh: Load loader helper when running busted
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 12:14:51 +0000] rev 13435
util.ip: Remove ip.bits and related code, switch to more efficient strbitop
100,000 iterations of match() on my laptop from 3.5s -> 0.5s.
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 12:13:06 +0000] rev 13434
util.strbitop: Remove unused import in tests
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 12:08:37 +0000] rev 13433
util.strbitop: Add common_prefix_bits() method
This returns the number of bits that two strings have in common. It is
significantly more efficient than similar calculations in Lua.
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 12:03:31 +0000] rev 13432
util.ip: Add another test case for match() and commonPrefixLength()
Matthew Wild <mwild1@gmail.com> [Fri, 23 Feb 2024 11:59:45 +0000] rev 13431
util.strbitop: Rename spec file to correct name so tests actually run
Kim Alvefur <zash@zash.se> [Thu, 22 Feb 2024 19:46:52 +0100] rev 13430
util.rfc6724: Remove, unused since introduction of Happy Eyeballs
It was mainly used to determine whether to try IPv6 or IPv4 first,
following the rules for this in the RFC.
Now we always try IPv6 and IPv4 at roughly the same time, thus there no
need to carry these rules.
Matthew Wild <mwild1@gmail.com> [Thu, 22 Feb 2024 09:53:48 +0000] rev 13429
features: Add module-ready (for commit e20949a10118)
Matthew Wild <mwild1@gmail.com> [Thu, 22 Feb 2024 09:53:02 +0000] rev 13428
util.startup: Expose core.features.available as prosody.features
for convenience.
Kim Alvefur <zash@zash.se> [Wed, 21 Feb 2024 21:29:16 +0100] rev 13427
mod_s2s_auth_certs: Handle potential string error
conn:ssl_peerverification() can now return a single error in case the
connection has been closed for whatever reason
Kim Alvefur <zash@zash.se> [Sun, 21 Jan 2024 22:59:50 +0100] rev 13426
net.server_epoll: Prevent traceback when checking TLS after connection gone
Unclear why this would be done, but an error is not great.
Matthew Wild <mwild1@gmail.com> [Tue, 20 Feb 2024 17:31:17 +0000] rev 13425
mod_cron: Allow configuring various "internal" delay parameters
Notably, it is now possible to add a randomized spread factor to the check
interval.
Kim Alvefur <zash@zash.se> [Sat, 17 Feb 2024 19:07:57 +0100] rev 13424
mod_c2s: Fix error on role change on Components (thanks Menel)
Kim Alvefur <zash@zash.se> [Fri, 16 Feb 2024 00:15:36 +0100] rev 13423
mod_smacks: Adjust buckets for resumption age statistic
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.
Kim Alvefur <zash@zash.se> [Thu, 15 Feb 2024 20:28:14 +0100] rev 13422
mod_storage_internal: Fix off-by-one when searching archive for
Fixes a test case provided by MattJ where the very first item matched by
a 'start' timestamp was not returned.
Kim Alvefur <zash@zash.se> [Thu, 11 Jan 2024 07:54:11 +0100] rev 13421
mod_s2s_auth_dane_in: Try single TLSA lookup per draft-ietf-dance-client-auth
Moves some complexity from the implementation into DNS operations.
Kim Alvefur <zash@zash.se> [Thu, 11 Jan 2024 07:53:06 +0100] rev 13420
mod_s2s_auth_dane_in: Simplify result processing
Fewer loops
Kim Alvefur <zash@zash.se> [Sun, 08 Aug 2021 18:07:17 +0200] rev 13419
MUC: Record reason for affiliation changes and return in list (fixes #1227)
Kim Alvefur <zash@zash.se> [Tue, 23 Jan 2024 13:00:58 +0100] rev 13418
MUC: Test that <subject/> + <thread/> is not handled as subject change
Ref #667
Ref #1838
Kim Alvefur <zash@zash.se> [Sun, 21 Jan 2024 20:08:00 +0100] rev 13417
mod_invites: Fix argument handling
Not sure what the next() was supposed to do. Reject unknown --options
perhaps?
Kim Alvefur <zash@zash.se> [Sat, 13 Jan 2024 11:00:20 +0100] rev 13416
mod_invites: Show short help instead of traceback on missing hostname
Kim Alvefur <zash@zash.se> [Sat, 13 Jan 2024 10:59:04 +0100] rev 13415
mod_invites: Show help if --help passed instead of hostname
Because I couldn't guess the right way to get the help message without
reading the source twice.
Kim Alvefur <zash@zash.se> [Sat, 13 Jan 2024 10:58:12 +0100] rev 13414
mod_invites: Allow specifying invite ttl on command line
Was missing a way to pass TTL via command or shell.
Kim Alvefur <zash@zash.se> [Sun, 17 Dec 2023 19:02:56 +0100] rev 13413
Merge 0.12->trunk
Kim Alvefur <zash@zash.se> [Sun, 17 Dec 2023 18:55:14 +0100] rev 13412
mod_disco: Advertise disco#info and #items on bare JIDs to fix #1664
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.
Kim Alvefur <zash@zash.se> [Sun, 17 Dec 2023 16:41:47 +0100] rev 13411
scansion: Use new style for accessing Lua globals
Kim Alvefur <zash@zash.se> [Sun, 17 Dec 2023 16:41:27 +0100] rev 13410
scansion: Use new prosody namespace in import
Kim Alvefur <zash@zash.se> [Sun, 17 Dec 2023 16:29:03 +0100] rev 13409
scansion: Use captures or wildcards instead of mocking time
> Mockery is one of the things I hold dear! And he's making a mockery of it!!
-- Belkar Bitterleaf
Kim Alvefur <zash@zash.se> [Sat, 16 Dec 2023 13:47:55 +0100] rev 13408
util.xtemplate: Test the each template function
It iterates over childtags, so a template like {foo|each{...}} would be
equivalent to root:childtags("foo"), while a deeper query needs the bit
that becomes arguments to :childtags as an argument to each, e.g.
{foo/bar|each(baz)} would behave like
root:get_child("foo"):get_child("bar"):childtags("baz")
Kim Alvefur <zash@zash.se> [Tue, 12 Dec 2023 16:19:04 +0100] rev 13407
tools: Fix selection of container engine
Seems command -v in sh only checks and returns one argument, unlike
bash.
Matthew Wild <mwild1@gmail.com> [Tue, 12 Dec 2023 13:41:14 +0000] rev 13406
mod_storage_internal, tests: Fix before/after combined with the 'reverse' flag
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 21:01:49 +0100] rev 13405
util.http: Silence strict luacheck warning in tests
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 20:55:26 +0100] rev 13404
core.moduleapi: Silence strict luacheck warnings in tests
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 20:36:29 +0100] rev 13403
util.throttle: Silence some strict luacheck warnings
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 17:00:22 +0100] rev 13402
util.prosodyctl.shell: Fix lint [luacheck]
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 16:41:37 +0100] rev 13401
CHANGES: Mention new prosodyctl shell method behavior
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 16:25:04 +0100] rev 13400
util.prosodyctl.shell: Add :method syntax to make e.g. MUC commands easier
e.g.
prosodyctl shell muc room room@muc.example.com :set_name "This Room"
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 15:15:06 +0100] rev 13399
util.xtemplate: Add some initial tests
Strict typing does not magically make code correct
Kim Alvefur <zash@zash.se> [Sat, 09 Dec 2023 14:57:41 +0100] rev 13398
util.xtemplate: Adopt {-path-} syntax to strip preceding and/or trailing whitespace
Seen in some other template languages
Kim Alvefur <zash@zash.se> [Wed, 06 Dec 2023 23:52:45 +0100] rev 13397
mod_http_errors: Simplify CSS via built-in dark mode
Matthew Wild <mwild1@gmail.com> [Fri, 08 Dec 2023 15:46:32 +0000] rev 13396
CHANGES: Document some of the recent changes and features in trunk
Matthew Wild <mwild1@gmail.com> [Fri, 08 Dec 2023 15:37:13 +0000] rev 13395
configmanager: Fix linter issues
Matthew Wild <mwild1@gmail.com> [Fri, 08 Dec 2023 15:34:48 +0000] rev 13394
configmanager: Support for appending to existing config options
...and some other useful operations
Matthew Wild <mwild1@gmail.com> [Fri, 08 Dec 2023 14:24:49 +0000] rev 13393
configmanager: Make _G accessible via `Lua` variable, deprecate direct access
Matthew Wild <mwild1@gmail.com> [Fri, 08 Dec 2023 13:36:51 +0000] rev 13392
configmanager: Allow referencing previously-set options in the config file
Matthew Wild <mwild1@gmail.com> [Thu, 07 Dec 2023 12:08:01 +0000] rev 13391
mod_user_account_management: Clear pending deletion if account re-enabled
Matthew Wild <mwild1@gmail.com> [Tue, 05 Dec 2023 11:39:11 +0000] rev 13390
mod_saslauth: Fire event per SASL step
This matches the behaviour of the newer mod_sasl2 implementation. It allows
plugins to observe (and potentially, with caution, modify) the SASL exchange.
Kim Alvefur <zash@zash.se> [Sat, 02 Dec 2023 21:45:38 +0100] rev 13389
util.jsonschema: Return basic structured validation response
Kim Alvefur <zash@zash.se> [Sun, 03 Dec 2023 15:46:33 +0100] rev 13388
mod_c2s: Make c2s_timeout timer reachable to allow access from other modules
E.g. the timeout could be extended under certain conditions.
Kim Alvefur <zash@zash.se> [Sun, 03 Dec 2023 15:44:15 +0100] rev 13387
tools: Add a tool for comparing DOAP to the latest XEP versions
Needs wget, awk, sed and xml2
Kim Alvefur <zash@zash.se> [Sat, 02 Dec 2023 20:20:05 +0100] rev 13386
mod_s2s: Close connection on smacks timeout
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.
Kim Alvefur <zash@zash.se> [Fri, 01 Dec 2023 23:43:18 +0100] rev 13385
mod_saslauth: Fire event at start of authentication attempt
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.
Kim Alvefur <zash@zash.se> [Fri, 01 Dec 2023 22:00:18 +0100] rev 13384
net.http.server: Fix whitespace-ignoring syntax
Kim Alvefur <zash@zash.se> [Fri, 01 Dec 2023 17:11:19 +0100] rev 13383
Merge 0.12->trunk
Kim Alvefur <zash@zash.se> [Wed, 23 Aug 2023 12:18:34 +0200] rev 13382
net.http.parser: Reject overlarge header section earlier
This case would eventually be rejected by the buffer size limit.
Kim Alvefur <zash@zash.se> [Thu, 30 Nov 2023 18:45:05 +0100] rev 13381
lua-format: Let simple things be one line
This doesn't really handle nesting all that nicely tho.
Kim Alvefur <zash@zash.se> [Wed, 18 Jan 2023 18:35:24 +0100] rev 13380
lua-format: Further tweaks
Keeping things a single line makes very deeply nested things "pyramids"
a single line, which makes them hard to read.
Kim Alvefur <zash@zash.se> [Wed, 28 Jul 2021 14:55:17 +0200] rev 13379
lua-format: Add new settings
Kim Alvefur <zash@zash.se> [Tue, 07 Jul 2020 18:23:23 +0200] rev 13378
lua-format: Tweaks attempting to fit our code style
Kim Alvefur <zash@zash.se> [Tue, 07 Jul 2020 18:30:15 +0200] rev 13377
lua-format: Check in defaults
By starting with the built-in defaults, we get a nice history of
differences from those as we figure out what settings suit us
Sorted make comparisons easier.
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 17:46:18 +0000] rev 13376
mod_user_account_management: Fire events with a fake (not destroyed) session
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.
Kim Alvefur <zash@zash.se> [Thu, 30 Nov 2023 18:42:56 +0100] rev 13375
mod_cron: Rebuild with new LuaFormatter settings (tabs!)
Kim Alvefur <zash@zash.se> [Thu, 30 Nov 2023 18:09:53 +0100] rev 13374
util.datamanager: Fix missing pack format when reading first index entry
Thanks MattJ
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 13:48:43 +0000] rev 13373
mod_user_account_management: Add support for soft-deletion of accounts via IBR
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.
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 13:43:23 +0000] rev 13372
moduleapi: Log error message when ambiguous period spec is found in config
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 13:42:44 +0000] rev 13371
util.human.io: Don't accept ambiguous durations by default
The new method parse_duration_lax() exports the old behaviour, mainly for
compatibility purposes.
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 12:41:26 +0000] rev 13370
mod_cron: Update Teal source and rebuild
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 11:42:52 +0000] rev 13369
mod_cron: Rename variable to fix shadowing (#luacheck)
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 11:38:59 +0000] rev 13368
mod_cron: Add shell command to list registered cron tasks with status
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 11:22:40 +0000] rev 13367
mod_saslauth: Allow plugins to override return SASL condition/text
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 10:14:17 +0000] rev 13366
luacheckrc, mod_http_file_share: Update for module API change (once->on_ready)
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 10:09:47 +0000] rev 13365
modulemanager: Allow modules to expose module.ready - to be called after init
This is a shortcut for module:on_ready() which exposes the functionality in an
idiomatic way consistent with module.load, module.unload, etc.
module.ready runs when the module is loaded and the server has finished
starting up.
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 10:07:53 +0000] rev 13364
moduleapi: Rename :once() to :on_ready() for clarity
'Once' is ambiguous - once per what?
on_ready() executes its parameter when the module is loaded *and* the server
has finished starting.
Matthew Wild <mwild1@gmail.com> [Thu, 30 Nov 2023 09:47:00 +0000] rev 13363
usermanager, mod_auth_internal_hashed: Support metadata when disabling a user
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.
Kim Alvefur <zash@zash.se> [Mon, 27 Nov 2023 00:14:56 +0100] rev 13362
util.datamanager: Load first item into index earlier
Should get rid of fseek() call
Kim Alvefur <zash@zash.se> [Sun, 26 Nov 2023 22:58:11 +0100] rev 13361
mod_mam: Use for loop in metadata query
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.
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:51:34 +0000] rev 13360
mod_tokenauth: Ignore invalid grants in storage that have no id
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:50:33 +0000] rev 13359
mod_invites: Fix linter issues
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:49:20 +0000] rev 13358
mod_admin_shell: Fix linter issues
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:34:44 +0000] rev 13357
mod_invites: Use new shell-command API
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:33:56 +0000] rev 13356
mod_admin_shell: Remove verbose logging
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:22:18 +0000] rev 13355
mod_admin_shell: Remove timer:info() (it's been debug:timers() for some time)
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:19:53 +0000] rev 13354
mod_admin_shell: Support for 'shell-command' items (global and per-host)
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.
Matthew Wild <mwild1@gmail.com> [Wed, 29 Nov 2023 17:18:17 +0000] rev 13353
mod_admin_shell: Refactor help to data structures for extensibility
This makes it easier for commands added by other modules to add to the help
output, for example.
Kim Alvefur <zash@zash.se> [Mon, 27 Nov 2023 17:19:16 +0100] rev 13352
migrator: Add an escape hatch to allow arbitrary config options
Previously only SQL settings and the 'path' for internal storage could
be set, and only for SQL and internal storage.
input {
type = "whatever";
config = {
whatever_foobar = "something"
}
}