| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Many of these fall into a few categories:
- util.cache size, must be >= 1
- byte or item counts that logically can't be negative
- port numbers that should be in 1..0xffff
|
|
|
|
|
|
| |
To match :get_option_number etc, specifying the allowed interval.
Default is essentially (0, inf].
|
|
|
|
|
|
|
| |
Many options in Prosody that are treated as numbers don't make sense as
floats, e.g. sizes and limits measured in bytes.
Simplified implementation based on an earlier attempt dating back to 2020
|
|
|
|
|
| |
This adds a dependency on a binary and *nix-specific module but then
stty is probably *nix-specific anyway so maybe that's fine.
|
|
|
|
| |
Improves readability ("1 day" vs 86400) and centralizes validation.
|
| |
|
| |
|
|
|
|
|
| |
As a way to signal that the periodic thing should be disabled, matching
existing mod_mam usage
|
|
|
|
|
| |
Pass positive numbers trough unharmed, parse strings as periods, discard
anything else.
|
|
|
|
|
| |
E.g. for use in mod_mam and others that take an amount of time before
some (usually cleanup) action is taken.
|
| |
|
| |
|
|
|
|
| |
For when a setting has a few fixed values it can take
|
|
|
|
| |
Accidentally .lua ?
|
|
|
|
|
| |
Notably 'h' was missing. Awkwardly, 'hour' would result in 'ho' which
was missing from table.
|
| |
|
|
|
|
| |
This way the relevant arguments are shown in case a test case fails
|
|
|
|
|
|
| |
This is probably not guaranteed to work and might vary with Lua version,
but it's good enough for me to get accurate line numbers out of Busted
that don't all point to the test() function.
|
|
|
|
|
|
|
| |
Useful for opening a module and its tests at the same, can be awkward to
auto-complete sometimes.
sensible-editor util/example.lua $(./tools/mod2spec.sh util.example)
|
|
|
|
| |
The double asterisk seems unnecessary.
|
| |
|
|
|
|
|
| |
Really should be the default everywhere by now, but doesn't hurt to be
extra explicit
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Specifically the index and more efficient delete.
These are however still in need of testing.
|
|
|
|
|
|
|
|
| |
Using the new shift function in datamanager, either the oldest items are
removed or all the later items are moved into a new file that replaces
the old.
Hidden behind a feature flag for now.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Using the new pposix.remove_blocks() it should be very performant to
delete whole sections of a file, given a supporting file system.
|
|
|
|
|
|
| |
Allows implementing e.g. a FIFO
Will probably only work on some Linux file systems like ext4.
|
|
|
|
|
| |
Copying data without parsing it should be more performant than parsing
it serializing back.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
(thanks Trung)
These were mostly 'warn' to make them stand out from the debug noise
|
| |
|
|\ |
|
| |
| |
| |
| | |
Ref https://github.com/mozilla/server-side-tls/issues/285
|
| |
| |
| |
| | |
Fixes use in PEP where the JID does not equal the bare domain.
|
| |
| |
| |
| |
| |
| | |
Removed in 536055476912 because it was not used anywhere else in the
file, but per the documentation it is meant to inform external upload
services of the expiry time of the upload itself.
|
| |
| |
| |
| |
| |
| |
| | |
Simplifies access to the cache without moving code around a lot given
the currently common pattern of
local some_cache = cache.new(size, function(k,v) end)
|
| |
| |
| |
| |
| | |
Previously either the old or the new values would be rejected, even if
the cache was resized to allow more items.
|
| | |
|
| |
| |
| |
| |
| | |
But anything that's not a table can't be resolved into, which could
happen in the middle, so eh.
|
| |
| |
| |
| | |
It seems to think 'table' never has array items, but we don't know that.
|
| |
| |
| |
| |
| |
| |
| | |
This gives us more granular control over different types of user account.
Accounts registered by IBR get assigned prosody:registered by default, while
accounts provisioned by an admin (e.g. via prosodyctl shell) will receive
prosody:member by default.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Overrides the util.jwt default of 1h with the intended TTL of 10
minutes. Because util.jwt now has its own expiry checks, so the 'expiry'
field is no longer used and can thus be removed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Mostly thinking out loud about how various actions may use the shell
This enables the following sequence of commands:
prosodyctl install mod_example
prosodyctl reload mod_example
which is simpler than
prosodyctl shell module reload example
|
| |
| |
| |
| |
| | |
server_select only depending on LuaSocket generally makes it more
portable, so fall back to that if util.poll can't be found.
|
| | |
|