aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* modulemanager: Allow modules to expose module.ready - to be called after initMatthew Wild2023-11-301-0/+4
| | | | | | | | 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.
* moduleapi: Rename :once() to :on_ready() for clarityMatthew Wild2023-11-301-1/+7
| | | | | | | 'Once' is ambiguous - once per what? on_ready() executes its parameter when the module is loaded *and* the server has finished starting.
* usermanager, mod_auth_internal_hashed: Support metadata when disabling a userMatthew Wild2023-11-302-4/+5
| | | | | 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.
* util.datamanager: Load first item into index earlierKim Alvefur2023-11-271-1/+2
| | | | Should get rid of fseek() call
* 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.
* migrator: Add an escape hatch to allow arbitrary config optionsKim Alvefur2023-11-271-0/+5
| | | | | | | | | | | | 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" } }
* util.poll: Rename things to clarify poll(2) limitsKim Alvefur2023-11-271-5/+7
| | | | | | With epoll(7), MAX_EVENTS controls how many events can be retrieved in one epoll_wait call, while with poll(2) this MAX_WATCHED controls how many sockets or other FDs can be watched at once.
* 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'
* mod_storage_internal: Close lazy-loading list abstraction after trimKim Alvefur2023-11-261-0/+6
| | | | Should be done here too.
* mod_storage_internal: Only close lazy-loading list store abstractionsKim Alvefur2023-11-261-1/+3
| | | | | Since datamanager can fall back to the old method of loading the whole list, which wouldn't come with a :close method.
* util.startup: Use prosody. module namespaceKim Alvefur2023-11-241-1/+1
| | | | Maybe we need some sort of lint for this?
* net.http.server: Complete async waiter for non-persistent connectionsKim Alvefur2023-11-241-3/+2
| | | | | | | | | Otherwise requests with Connection: close would be stuck in the async wait that starts after the handle_request() call. Together with the new async debugging, this makes the async thread stay in the set of waiting runners forever, where previously it would simply be garbage collected.
* mod_storage_internal: Close archive list after completion of iterationKim Alvefur2023-11-231-0/+1
| | | | | This closes the two FDs that the random access list abstraction uses, otherwise they are left to the garbage collector.
* mod_pubsub: Provide some node properties in summary template #1809Kim Alvefur2023-11-221-1/+11
| | | | | | Gives some access to node details which are otherwise hard to determine if you only see the plain text summary, since it is shared based on the pubsub#type setting (or payload xmlns).
* mod_admin_shell: Fix lint [luacheck]Kim Alvefur2023-11-211-10/+8
|
* util.async: Clip long line [luacheck]Kim Alvefur2023-11-211-1/+2
|
* net.server_epoll: Avoid call to update socket watch flags when nothing changedKim Alvefur2023-11-211-0/+3
| | | | Should skip a syscall for each write when using epoll.
* util.poll: Quadruple number of events retrieved at once from epollKim Alvefur2023-11-211-1/+1
| | | | | | Better performance under load maybe? See b890ceb1c24f for previous increase
* mod_admin_shell: Add debug:async() command to show blocked async runnersMatthew Wild2023-11-211-0/+65
|
* util.async: Expose default runner functionMatthew Wild2023-11-211-0/+2
| | | | | | This is purely for informational purposes, so it's possible to determine externally whether a runner is using the default runner function (which executes functions as work items) or a custom runner function.
* util.async: Record current work item in the runner objectMatthew Wild2023-11-211-0/+5
| | | | Mostly expected to be useful for debugging purposes.
* util.async: Improve debug logging in a few placesMatthew Wild2023-11-211-2/+5
| | | | Knowing the state of the coroutine as well as the runner state can be helpful.
* util.async: Export a table of currently-waiting runnersMatthew Wild2023-11-211-0/+5
| | | | This can be used for debugging and introspection.
* util.poll: Return early if given zero timeout and no pending eventsKim Alvefur2023-11-211-0/+6
| | | | | Should have been part of f33887f925e1 to ensure it won't skip processing timers at all when very busy.
* moduleapi: Update Teal specKim Alvefur2023-11-131-1/+4
| | | | Updates for 65fb0d7a2312::59c3d775c7fa
* util.prosodyctl.check: Disable https cert check if http_external_url setKim Alvefur2023-11-131-0/+4
| | | | | This would indicate that a reverse proxy is used, which gets to be responsible for that since it probably holds the actual cert.
* util.prosodyctl.check: Check cert for HTTPS if http module enabledKim Alvefur2023-11-131-3/+13
|
* util.prosodyctl.check: Update conditions for s2s cert checksKim Alvefur2023-11-131-3/+3
| | | | | | The 'anonymous_login' setting is deprecated and prosodyctl check config will tell you to change it to 'authentication = "internal_hashed"', so we shouldn't need to care about here anymore.
* util.prosodyctl.check: Simplify conditions for c2s and s2s cert checksKim Alvefur2023-11-131-3/+3
| | | | This code is hard to follow and in need of some refactoring.
* tools/build-env: Tools for building and testing in a containerKim Alvefur2023-11-123-0/+61
| | | | | | | | | ./tools/build-env/build.sh Creates a container image based on Debian or Ubuntu ./tools/build-env/here.sh Starts a container and mounts in the current working directory, from where one can ./configure; make; make test etc
* mod_s2s_auth_dane_in: Bail out on explicit service denialKim Alvefur2023-11-121-0/+1
|
* mod_tokenauth: Include more details in debug logsKim Alvefur2023-11-121-5/+5
| | | | | Had a hard time following what was happening when it did not specify which grant or token was being removed.
* net.http: Set Connection header based on connection pool usageKim Alvefur2023-11-111-1/+8
| | | | Connection: keep-alive is implicit in HTTP/1.1 but explicit > implicit
* net.http: Add simple connection poolingKim Alvefur2023-11-111-1/+38
| | | | | | | | | | | | | | This should speed up repeated requests to the same site by keeping their connections around and sending more requests on them. Sending multiple requests at the same time is not supported, instead a request started while another to the same authority is in progress would open a new one and the first one to complete would go back in the pool. This could be investigated in the future. Some http servers limit the number of requests per connection and this is not tested and could cause one request to fail, but hopefully it will close the connection and prevent it from being reused.
* mod_storage_sql: Use UUIDv7 as keysKim Alvefur2023-07-171-1/+1
| | | | | Potentially allows sorting on those directly as they will be in increasing order.
* util.uuid: Add UUIDv7Kim Alvefur2021-08-152-0/+39
| | | | | | | | | Allows sorting by id as a substitute for sorting by timestamp since it has the timestamp in the encoded in the first part, and only things that happen extremely close together may get out of order by such a sort, which might not matter. From draft-ietf-uuidrev-rfc4122bis formerly draft-peabody-dispatch-new-uuid-format
* util.prosodyctl.check: Try to clarify check for misplaced k=v in ↵Kim Alvefur2023-11-111-2/+2
| | | | modules_enabled (thanks aab and Menel)
* doap: Update XEP-0359 version, no protocol changesKim Alvefur2023-11-111-1/+1
| | | | Security considerations added, no protocol changes.
* doap: Update XEP-0353 version, no change affecting server handlingKim Alvefur2023-11-111-1/+1
|
* doap: Update XEP-0313 version, only change align with current mod_mam behaviorKim Alvefur2023-11-111-1/+1
|
* doap: Update XEP-0045 version, only minor changesKim Alvefur2023-11-111-1/+1
|