aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* util.ip: Remove ip.bits and related code, switch to more efficient strbitopMatthew Wild2024-02-231-22/+6
| | | | 100,000 iterations of match() on my laptop from 3.5s -> 0.5s.
* util.rfc6724: Remove, unused since introduction of Happy EyeballsKim Alvefur2024-02-221-141/+0
| | | | | | | | 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.
* util.startup: Expose core.features.available as prosody.featuresMatthew Wild2024-02-221-0/+2
| | | | for convenience.
* util.prosodyctl.shell: Fix lint [luacheck]Kim Alvefur2023-12-091-1/+0
|
* util.prosodyctl.shell: Add :method syntax to make e.g. MUC commands easierKim Alvefur2023-12-091-2/+11
| | | | | e.g. prosodyctl shell muc room room@muc.example.com :set_name "This Room"
* util.xtemplate: Adopt {-path-} syntax to strip preceding and/or trailing ↵Kim Alvefur2023-12-091-4/+12
| | | | | | whitespace Seen in some other template languages
* util.jsonschema: Return basic structured validation responseKim Alvefur2023-12-021-61/+108
|
* util.datamanager: Fix missing pack format when reading first index entryKim Alvefur2023-11-301-1/+1
| | | | Thanks MattJ
* util.human.io: Don't accept ambiguous durations by defaultMatthew Wild2023-11-301-3/+17
| | | | | The new method parse_duration_lax() exports the old behaviour, mainly for compatibility purposes.
* util.datamanager: Load first item into index earlierKim Alvefur2023-11-271-1/+2
| | | | Should get rid of fseek() call
* util.startup: Use prosody. module namespaceKim Alvefur2023-11-241-1/+1
| | | | Maybe we need some sort of lint for this?
* util.async: Clip long line [luacheck]Kim Alvefur2023-11-211-1/+2
|
* 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.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.
* util.uuid: Add UUIDv7Kim Alvefur2021-08-151-0/+17
| | | | | | | | | 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)
* util.startup: Attempt to bring some order to startup/shutdown with util.fsmMatthew Wild2023-11-071-10/+41
|
* util.prosodyctl.check: Print DANE TLSA records for certificatesKim Alvefur2023-11-031-0/+10
| | | | Not the prosodyctl check dane I wanted to make but a start.
* util.prosodyctl.check: Wrap each check in a functionKim Alvefur2023-11-031-13/+29
| | | | | | | One small refactor but one huge step in the right direction Mostly because adding another check would make the line checking for a valid check exceed the column limit.
* util.datamanager: Clean up list index files on purge (i.e. user deletion)Kim Alvefur2023-11-021-0/+2
|
* Merge 0.12->trunkKim Alvefur2023-08-301-1/+1
|\
| * util.prosodyctl.check: Correct modern replacement for 'disallow_s2s'0.12.4Kim Alvefur2023-08-271-1/+1
| | | | | | | | | | The code would have suggested adding to modules_enabled instead of modules_disabled
| * util.array: Fix new() library functionKim Alvefur2023-07-221-1/+3
| | | | | | | | Backport of ffe4adbd2af9 since new was added in the 0.12 branch
* | util.array: Fix new() library functionKim Alvefur2023-07-221-1/+3
| |
* | util.sql: Remove unused String() and Integer() functionsKim Alvefur2023-07-221-4/+0
| | | | | | | | According to MattJ, leftovers from an earlier vision for util.sql
* | util.sqlite3: Clean up unused variablesKim Alvefur2023-07-221-42/+6
| | | | | | | | | | Many leftovers from the earlier version of util.sql this was based on and cleanup applied there since then.
* | util.datamanager: Always reset index after list shiftKim Alvefur2023-07-221-39/+4
| | | | | | | | | | | | Shifting the index does not work reliably yet, better to rebuild it from scratch. Since there is minimal parsing involved in that, it should be more efficient anyway.
* | util.datamanager: Add way to close indexed list storeKim Alvefur2023-07-211-1/+9
| |
* | util.datamanager: Close file handle when done using itKim Alvefur2023-07-211-0/+1
| | | | | | | | | | It gets closed eventually but at high load they could potentially lead to reaching FD limits faster.
* | util.datamanager: Disable blockwise removalKim Alvefur2023-07-211-1/+4
| | | | | | | | In desperate need of tests
* | util.datamanager: Disable block alignmentKim Alvefur2023-07-211-0/+2
| | | | | | | | | | Until we have more test coverage. Somehow the index becomes incorrect after inserting padding, unclear why.
* | Merge 0.12->trunkKim Alvefur2023-07-171-0/+5
|\|
| * util.prosodyctl.check: Hint about the 'external_addresses' config optionKim Alvefur2023-07-171-0/+5
| |
* | Merge 0.12->trunkKim Alvefur2023-07-171-41/+82
|\|
| * util.prosodyctl.check: Validate format of module list optionsKim Alvefur2023-07-171-0/+28
| | | | | | | | Should detect things like misplaced settings inside modules_enabled
| * util.prosodyctl.check: Get some config options via minimal moduleapi #896Kim Alvefur2023-07-171-41/+54
| | | | | | | | | | | | The module API has certain coercion features that are useful. Fixes traceback reported in #1812 and other duplicates
* | util.human.io: Fix stray 'stty' error by only querying width of real ttysKim Alvefur2023-07-161-0/+4
| | | | | | | | | | This adds a dependency on a binary and *nix-specific module but then stty is probably *nix-specific anyway so maybe that's fine.
* | util.human.io: Fix pattern in parse_duration() to cover all used lettersKim Alvefur2023-07-161-2/+2
| | | | | | | | | | Notably 'h' was missing. Awkwardly, 'hour' would result in 'ho' which was missing from table.
* | util.datamanager: Pad list writes to avoid crossing block boundariesKim Alvefur2023-06-071-0/+7
| | | | | | | | | | | | | | | | | | | | | | By padding items so that they do not cross block boundaries, it becomes eaiser to delete whole blocks with fallocate() without cutting items in half, improving efficiency of such operations. Since list stores are used for message archives, where the most common deletion operation would be of the oldest entires, at the top of the file. With this, all blocks that contain items to be removed could be deleted without needing to read, delete and write out the whole file.
* | util.datamanager: Efficiently remove whole blocks to shift listsKim Alvefur2023-07-121-0/+40
| | | | | | | | | | Using the new pposix.remove_blocks() it should be very performant to delete whole sections of a file, given a supporting file system.
* | util.datamanager: Add way to efficiently remove first items in a listKim Alvefur2023-07-121-0/+92
| | | | | | | | | | Copying data without parsing it should be more performant than parsing it serializing back.
* | util.datamanager: Fix indexing first item if not at the very startKim Alvefur2023-07-101-2/+2
| | | | | | | | | | | | | | | | If the first item does not start at position 0 then the index function produces a phantom first entry covering position zero until where the real first item starts. When using the index, this would make it either appear as the first item was missing or cause an off-by-one issue with remaining items.
* | util.datamanager: Reduce log level of left over debug messages to debug ↵Kim Alvefur2023-07-121-2/+2
| | | | | | | | | | | | (thanks Trung) These were mostly 'warn' to make them stand out from the debug noise
* | util.datamanager: Fix missing separator in log lineKim Alvefur2023-07-101-1/+1
| |