Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | plugins: Use get_option_array for some list shaped options | Kim Alvefur | 2023-07-21 | 2 | -2/+2 | |
| | | | | | | | | | | Passing something from module:get_option() to ipairs() suggests that the option is a list of some sort. | |||||
* | | util.datamanager: Disable block alignment | Kim Alvefur | 2023-07-21 | 1 | -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 Alvefur | 2023-07-21 | 3 | -4/+4 | |
| | | ||||||
* | | plugins: Use boolean config method in some places | Kim Alvefur | 2023-07-18 | 3 | -9/+7 | |
| | | | | | | | | Because it makes sense and improves feedback via logging | |||||
* | | mod_storage_internal: Use integer option method for cache size | Kim Alvefur | 2023-07-18 | 1 | -1/+1 | |
| | | | | | | | | Missed this one in previous sweep | |||||
* | | mod_muc_mam: Use period option method | Kim Alvefur | 2023-07-18 | 1 | -13/+3 | |
| | | ||||||
* | | mod_muc: Use enum option method for 'muc_room_default_presence_broadcast' | Kim Alvefur | 2023-07-18 | 1 | -1/+2 | |
| | | ||||||
* | | mod_storage_xep0227: Use enum option method | Kim Alvefur | 2023-07-18 | 1 | -1/+1 | |
| | | ||||||
* | | mod_auth_ldap: Use enum option method | Kim Alvefur | 2023-07-18 | 1 | -2/+2 | |
| | | ||||||
* | | mod_storage_sql: Use integer config option for cache size | Kim Alvefur | 2023-07-18 | 1 | -1/+1 | |
| | | | | | | | | Missed this one, was probably only looking for get_option_number | |||||
* | | mod_storage_sql: Use config enum for 'sqlite_tune' | Kim Alvefur | 2023-07-18 | 1 | -1/+1 | |
| | | ||||||
* | | mod_storage_sql: Allow higher precision timestamps in SQLite3 | Kim Alvefur | 2023-07-17 | 1 | -1/+5 | |
| | | | | | | | | Since it doesn't actually do strict typing :) | |||||
* | | Merge 0.12->trunk | Kim Alvefur | 2023-07-17 | 1 | -0/+5 | |
|\| | ||||||
| * | util.prosodyctl.check: Hint about the 'external_addresses' config option | Kim Alvefur | 2023-07-17 | 1 | -0/+5 | |
| | | ||||||
* | | Merge 0.12->trunk | Kim Alvefur | 2023-07-17 | 1 | -41/+82 | |
|\| | ||||||
| * | util.prosodyctl.check: Validate format of module list options | Kim Alvefur | 2023-07-17 | 1 | -0/+28 | |
| | | | | | | | | Should detect things like misplaced settings inside modules_enabled | |||||
| * | util.prosodyctl.check: Get some config options via minimal moduleapi #896 | Kim Alvefur | 2023-07-17 | 1 | -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.2 | Kim Alvefur | 2023-07-17 | 1 | -1/+1 | |
| | | | | | | | | Maybe these should live in util.mathcompat? | |||||
* | | mod_http: Fix passing minimum limits in wrong argument position | Kim Alvefur | 2023-07-17 | 1 | -2/+2 | |
| | | ||||||
* | | plugins: Use integer config API with interval specification where sensible | Kim Alvefur | 2023-07-17 | 26 | -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_period | Kim Alvefur | 2023-07-17 | 1 | -11/+27 | |
| | | | | | | | | | | | | To match :get_option_number etc, specifying the allowed interval. Default is essentially (0, inf]. | |||||
* | | moduleapi: Add :get_option_integer() | Kim Alvefur | 2023-07-17 | 4 | -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 ttys | Kim Alvefur | 2023-07-16 | 1 | -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 options | Kim Alvefur | 2023-07-16 | 18 | -38/+24 | |
| | | | | | | | | Improves readability ("1 day" vs 86400) and centralizes validation. | |||||
* | | core.moduleapi: Accept boolean false to disable period setting | Kim Alvefur | 2023-07-16 | 1 | -1/+1 | |
| | | ||||||
* | | core.moduleapi: Log error for unexpected types (booleans?) set as periods | Kim Alvefur | 2023-07-16 | 1 | -0/+2 | |
| | | ||||||
* | | core.moduleapi: Turn negative periods or "never" into infinity | Kim Alvefur | 2023-07-16 | 1 | -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_period | Kim Alvefur | 2023-07-16 | 1 | -8/+8 | |
| | | | | | | | | | | Pass positive numbers trough unharmed, parse strings as periods, discard anything else. | |||||
* | | core.moduleapi: Add :get_option_period for parsing time intervals | Kim Alvefur | 2023-07-16 | 4 | -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 options | Kim Alvefur | 2021-10-05 | 3 | -2/+16 | |
| | | ||||||
* | | plugins: Use get_option_enum where appropriate | Kim Alvefur | 2021-01-16 | 5 | -8/+11 | |
| | | ||||||
* | | moduleapi: Add enum config option method | Kim Alvefur | 2021-01-16 | 4 | -0/+17 | |
| | | | | | | | | For when a setting has a few fixed values it can take | |||||
* | | tools: Fix file ending of mod2spec.sh (thanks buildbot) | Kim Alvefur | 2023-07-16 | 1 | -0/+0 | |
| | | | | | | | | Accidentally .lua ? | |||||
* | | util.human.io: Fix pattern in parse_duration() to cover all used letters | Kim Alvefur | 2023-07-16 | 1 | -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 Alvefur | 2023-07-16 | 1 | -0/+9 | |
| | | ||||||
* | | util.human.io: Include relevant arguments in test messages | Kim Alvefur | 2023-07-16 | 1 | -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 numbers | Kim Alvefur | 2023-07-16 | 1 | -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.lua | Kim Alvefur | 2023-07-16 | 1 | -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) | |||||
* | | editorconfig: Include the command used to normalize *.xml | Kim Alvefur | 2023-07-15 | 1 | -1/+2 | |
| | | | | | | | | The double asterisk seems unnecessary. | |||||
* | | editorconfig: Specify max line length to match luacheck settings | Kim Alvefur | 2023-07-15 | 1 | -0/+1 | |
| | | ||||||
* | | editorconfig: Explicitly specify preferred charset (UTF-8) | Kim Alvefur | 2023-07-15 | 1 | -0/+1 | |
| | | | | | | | | | | Really should be the default everywhere by now, but doesn't hurt to be extra explicit | |||||
* | | editorconfig: Add link to format description | Kim Alvefur | 2023-07-15 | 1 | -0/+2 | |
| | | ||||||
* | | mod_storage_sql: Remove completed TODO (testing UPSERT on PostgreSQL) | Kim Alvefur | 2023-07-12 | 1 | -1/+0 | |
| | | ||||||
* | | CHANGES: Move line about LuaSQLite3 to Storage section | Kim Alvefur | 2023-07-12 | 1 | -1/+1 | |
| | | ||||||
* | | CHANGES: Mention performance improvements for internal archives | Kim Alvefur | 2023-07-12 | 1 | -0/+1 | |
| | | | | | | | | | | | | Specifically the index and more efficient delete. These are however still in need of testing. | |||||
* | | mod_storage_internal: Implement efficient deletion of oldest archive items | Kim Alvefur | 2023-07-12 | 1 | -0/+22 | |
| | | | | | | | | | | | | | | | | 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. | |||||
* | | util.datamanager: Pad list writes to avoid crossing block boundaries | Kim Alvefur | 2023-06-07 | 1 | -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 lists | Kim Alvefur | 2023-07-12 | 1 | -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.pposix: Add remove_blocks() for deleting parts of files | Kim Alvefur | 2023-06-07 | 2 | -0/+37 | |
| | | | | | | | | | | | | Allows implementing e.g. a FIFO Will probably only work on some Linux file systems like ext4. | |||||
* | | util.datamanager: Add way to efficiently remove first items in a list | Kim Alvefur | 2023-07-12 | 1 | -0/+92 | |
| | | | | | | | | | | Copying data without parsing it should be more performant than parsing it serializing back. |