aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* tests: Add hack to test only a single storage driverKim Alvefur2023-07-221-0/+5
| | | | | Fixes that LuaDBI being unavailable makes these produce nothing but endless stack overflows in luarocks.
* tests: Update storagemanager tests for prosody.* namespace changeKim Alvefur2023-07-221-8/+6
| | | | | Part of an attempt to make these tests work again. Previously they would just explode in a million luarocks stack overflows
* mod_storage_sql: Spell out missing dependenciesKim Alvefur2023-07-221-3/+16
| | | | | Using util.dependencies appeared to cause problems with running tests in Busted, so this also removes that and uses pcall directly.
* mod_storage_sql: Pass variables as arguments instead of upvaluesKim Alvefur2023-07-221-10/+5
| | | | | Probably a workaround for the lack of argument passing when using xpcall in Lua 5.1, no longer relevant.
* 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.
* core.moduleapi: Parse period min/max argumentsKim Alvefur2023-07-221-0/+6
| | | | | Allows specifying them the same way as the default and in the config, for consistency
* 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
* mod_muc: Use enum config API for 'restrict_room_creation'Kim Alvefur2023-07-211-1/+1
| | | | | | This communicates the accepted values in case the config diverges from them. Note that older documentation used an "admin" value behaving like an alias to true, but this is no longer handled. Should it?
* plugins: Use get_option_array for some list shaped optionsKim Alvefur2023-07-212-2/+2
| | | | | Passing something from module:get_option() to ipairs() suggests that the option is a list of some sort.
* 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.
* plugins: Handle how get_option_period returns "never"Kim Alvefur2023-07-213-4/+4
|
* plugins: Use boolean config method in some placesKim Alvefur2023-07-183-9/+7
| | | | Because it makes sense and improves feedback via logging
* mod_storage_internal: Use integer option method for cache sizeKim Alvefur2023-07-181-1/+1
| | | | Missed this one in previous sweep
* mod_muc_mam: Use period option methodKim Alvefur2023-07-181-13/+3
|
* mod_muc: Use enum option method for 'muc_room_default_presence_broadcast'Kim Alvefur2023-07-181-1/+2
|
* mod_storage_xep0227: Use enum option methodKim Alvefur2023-07-181-1/+1
|
* mod_auth_ldap: Use enum option methodKim Alvefur2023-07-181-2/+2
|
* mod_storage_sql: Use integer config option for cache sizeKim Alvefur2023-07-181-1/+1
| | | | Missed this one, was probably only looking for get_option_number
* mod_storage_sql: Use config enum for 'sqlite_tune'Kim Alvefur2023-07-181-1/+1
|
* mod_storage_sql: Allow higher precision timestamps in SQLite3Kim Alvefur2023-07-171-1/+5
| | | | Since it doesn't actually do strict typing :)
* 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
* | core.moduleapi: Fix min/maxinteger fallback for Lua 5.2Kim Alvefur2023-07-171-1/+1
| | | | | | | | Maybe these should live in util.mathcompat?
* | mod_http: Fix passing minimum limits in wrong argument positionKim Alvefur2023-07-171-2/+2
| |
* | plugins: Use integer config API with interval specification where sensibleKim Alvefur2023-07-1726-47/+48
| | | | | | | | | | | | | | 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
* | core.moduleapi: Add min/max range support to :get_option_periodKim Alvefur2023-07-171-11/+27
| | | | | | | | | | | | To match :get_option_number etc, specifying the allowed interval. Default is essentially (0, inf].
* | moduleapi: Add :get_option_integer()Kim Alvefur2023-07-174-0/+17
| | | | | | | | | | | | | | 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
* | 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.
* | plugins: Switch to :get_option_period() for time range optionsKim Alvefur2023-07-1618-38/+24
| | | | | | | | Improves readability ("1 day" vs 86400) and centralizes validation.
* | core.moduleapi: Accept boolean false to disable period settingKim Alvefur2023-07-161-1/+1
| |
* | core.moduleapi: Log error for unexpected types (booleans?) set as periodsKim Alvefur2023-07-161-0/+2
| |
* | core.moduleapi: Turn negative periods or "never" into infinityKim Alvefur2023-07-161-0/+7
| | | | | | | | | | As a way to signal that the periodic thing should be disabled, matching existing mod_mam usage
* | core.moduleapi: Improve handling of different types in :get_option_periodKim Alvefur2023-07-161-8/+8
| | | | | | | | | | Pass positive numbers trough unharmed, parse strings as periods, discard anything else.
* | core.moduleapi: Add :get_option_period for parsing time intervalsKim Alvefur2023-07-164-0/+18
| | | | | | | | | | E.g. for use in mod_mam and others that take an amount of time before some (usually cleanup) action is taken.
* | core.moduleapi: Allow specifying an acceptable range for number optionsKim Alvefur2021-10-053-2/+16
| |
* | plugins: Use get_option_enum where appropriateKim Alvefur2021-01-165-8/+11
| |
* | moduleapi: Add enum config option methodKim Alvefur2021-01-164-0/+17
| | | | | | | | For when a setting has a few fixed values it can take
* | tools: Fix file ending of mod2spec.sh (thanks buildbot)Kim Alvefur2023-07-161-0/+0
| | | | | | | | Accidentally .lua ?
* | 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.human.io: Add tests for parse_duration() (some failing)Kim Alvefur2023-07-161-0/+9
| |
* | util.human.io: Include relevant arguments in test messagesKim Alvefur2023-07-161-1/+1
| | | | | | | | This way the relevant arguments are shown in case a test case fails
* | util.human.io: Use tail call in test to get correct line numbersKim Alvefur2023-07-161-1/+1
| | | | | | | | | | | | 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.
* | tools: Add mod2spec.sh, turns util.example into spec/util_example_spec.luaKim Alvefur2023-07-161-0/+4
| | | | | | | | | | | | | | 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)