aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge 0.12->trunkKim Alvefur2022-07-086-307/+458
|\
| * util.datamapper: Improve handling of schemas with non-obvious "type"Kim Alvefur2022-07-083-25/+63
| | | | | | | | | | | | | | | | | | | | | | | | The JSON Schema specification says that schemas are objects or booleans, and that the 'type' property is optional and can be an array. This module previously allowed bare type names as schemas and did not really handle booleans. It now handles missing 'type' properties and boolean 'true' as a schema. Objects and arrays are guessed based on the presence of 'properties' or 'items' field.
| * util.jsonschema: Fix validation to not assume presence of "type" fieldKim Alvefur2022-07-083-282/+395
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MattJ reported a curious issue where validation did not work as expected. Primarily that the "type" field was expected to be mandatory, and thus leaving it out would result in no checks being performed. This was likely caused by misreading during initial development. Spent some time testing against https://github.com/json-schema-org/JSON-Schema-Test-Suite.git and discovered a multitude of issues, far too many to bother splitting into separate commits. More than half of them fail. Many because of features not implemented, which have been marked NYI. For example, some require deep comparisons e.g. when objects or arrays are present in enums fields. Some because of quirks with how Lua differs from JavaScript, e.g. no distinct array or object types. Tests involving fractional floating point numbers. We're definitely not going to follow references to remote resources. Or deal with UTF-16 sillyness. One test asserted that 1.0 is an integer, where Lua 5.3+ will disagree.
* | executables: Reject Lua 5.1 earlyKim Alvefur2022-07-022-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevents attempting to load libraries that may no longer be found and crashing with a traceback. Platforms like Debian where multiple Lua versions can be installed at the same time and 'lua' pointing to one of the installed interpreters via symlinks, there's the possibility that prosody/prosodyctl may be invoked with Lua 5.1, which will no longer have any of the rest of Prosody libraries available to be require(), and thus would immediately fail with an unfriendly traceback. Checking and aborting early with a friendlier message and reference to more information is better. Part of #1600
* | CHANGES: Lua 5.1 support removed (closes #1600)Kim Alvefur2022-07-051-0/+4
| |
* | util.envload: Remove Lua 5.1 methodKim Alvefur2022-07-051-29/+10
| | | | | | | | | | | | Part of #1600 Is this module even needed anymore?
* | util-src: Remove Lua 5.1 compat macrosKim Alvefur2022-07-0112-56/+2
| | | | | | | | Part of #1600
* | mod_storage_sql: Remove Lua 5.1 compatibility hackKim Alvefur2022-07-021-2/+1
| | | | | | | | Part of #1600
* | util: Remove various Lua 5.1 compatibility hacksKim Alvefur2022-07-025-31/+2
| | | | | | | | Part of #1600
* | util.dependencies: Reject Lua 5.1, Lua 5.2 or later is now required (see #1600)Kim Alvefur2022-07-021-2/+2
| |
* | tests: Remove special-casing of Lua 5.1Kim Alvefur2022-07-022-24/+22
| | | | | | | | Part of #1600
* | configure: No longer accept Lua 5.1Kim Alvefur2022-06-301-14/+11
| |
* | util.dependencies: Deprecate support for Lua 5.1, this is your final warningKim Alvefur2022-06-301-1/+1
| |
* | util.hashes: Revert to HMAC() convenience functionKim Alvefur2022-06-241-22/+2
| | | | | | | | | | | | | | | | | | Reverts some of 1e41dd0f8353 Seems HMAC() isn't deprecated after all? Must have been at some point according to #1589 Twice as fast for some reason.
* | util.hashes: Remove unused constantsKim Alvefur2022-06-241-3/+0
| |
* | util.hashes: Remove unused structKim Alvefur2022-06-241-8/+0
| | | | | | | | Unused since 9f1c5ae8d70b
* | util.hashes: Return OpenSSL error messages on failureKim Alvefur2022-06-241-3/+4
| | | | | | | | With luck, might contain more details than just "failed"
* | util.hashes: Add SHA3 bindingsKim Alvefur2020-09-103-0/+38
| |
* | util.hashes: Bind BLAKE2 algoritms supported by OpenSSLKim Alvefur2020-09-103-0/+25
| |
* | util.hashes: Refactor PBKDF2 to deduplicate codeKim Alvefur2020-09-101-17/+8
| |
* | util.hashes: Expose sha224 and sha384 HMAC functionsKim Alvefur2020-11-293-0/+14
| | | | | | | | For completeness and consistency with set of plain hash functions
* | util.hashes: Refactor HMAC bindings (fixes #1589)Kim Alvefur2020-11-291-22/+61
| | | | | | | | | | | | | | HMAC() is deprecated As with the regular hash functions, macros like this make it awkward to apply static analysis and code formatting.
* | util.hashes: Refactor hash functions to use OpenSSL EVP methods (fix #1698)Kim Alvefur2020-09-101-20/+63
| | | | | | | | | | | | | | MD5() is deprecated, but EVP_md5() is not. Functions in macros like this make it awkward to apply static analysis and code formatting.
* | Merge 0.12->trunkKim Alvefur2022-06-191-11/+8
|\|
| * net.unbound: Merge luaunbound and prosody defaults in absence of user config ↵Kim Alvefur2022-06-191-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (fixes #1763) (thanks rgd) add_defaults() is supposed to merge 3 tables, the defaults in luaunbound, the defaults from prosody and any config from the prosody config file. In the case where no `unbound={}` has been in the config, it skips over the merge and returns only the prosody built-in defaults. This results in libunbound skipping reading resolv.conf and uses its default behavior of full recursive resolution. Prior to #1737 there were only two tables, the luaunbound defaults and the prosody config, where bypassing the merge and returning the former did the right thing.
* | mod_mam: Silence luacheck (yay warnings in CI but not locally)Kim Alvefur2022-06-141-1/+1
| |
* | mod_mam: Clarify comment (thanks chili-b)Kim Alvefur2022-06-141-2/+6
| | | | | | | | | | This was slightly inaccurate since 6e1af07921d1 because the conditions are more complicated now.
* | Merge 0.12->trunkKim Alvefur2022-06-142-2/+6
|\|
| * util.startup: Fix async waiting for last shutdown stepsKim Alvefur2022-06-142-2/+6
| | | | | | | | | | | | | | | | | | | | | | Observed problem: When shutting down prosody would immediately exit after waiting for s2s connections to close, skipping the last cleanup events and reporting the exit reason and code. This happens because prosody.main_thread is in a waiting state and queuing startup.shutdown is dispatched trough the main loop via nexttick, but since the main loop was no longer running at that point it proceeded to the end of the prosody script and exited there.
* | mod_csi_simple: Collect stats on number of stanzas per flushKim Alvefur2022-06-141-0/+5
| | | | | | | | Because interesting, gives some idea about the efficiency.
* | mod_admin_shell: Show session id ping reply cameKim Alvefur2022-06-131-1/+1
| | | | | | | | | | | | To point out which one when more than one connection was established, or if it's an existing connection, allows correlation with s2s:show() or with logs.
* | Merge 0.12->trunkKim Alvefur2022-06-131-1/+1
|\|
| * mod_smacks: Fix #1761 by setting a flag earlierKim Alvefur2022-06-121-1/+1
| | | | | | | | | | | | This ensures that the flag is set even if the pre-drain callback is called from send(), as would be the case if opportunistic writes are enabled.
* | net.http.codes: Refresh from registry, many refs now point to RFC9110Kim Alvefur2022-06-131-46/+46
| |
* | util.watchdog: Allow passing a new timeout to :reset()Matthew Wild2022-06-111-1/+4
| |
* | util.watchdog: Allow :reset() to restart a cancelled watchdogMatthew Wild2022-06-111-5/+6
| |
* | util.watchdog: Update to use "new" util.timer APIMatthew Wild2022-06-111-13/+16
| | | | | | | | | | | | | | | | | | | | | | | | When this module was written, it wasn't possible to cancel or reschedule a timer. Times have changed, and we should take advantage of those new methods. This module becomes a very thin wrapper around util.timer now, but I'd argue it's still a very common and useful concept/abstraction to have around. Possible API change: this removes the 'last_reset' field of the watchdog. This was never really intended as a public thing, and I can't find any code that uses it, so I consider removal to be safe.
* | Merge 0.12->trunkMatthew Wild2022-06-090-0/+0
|\|
| * Added tag 0.12.1 for changeset 252ed01896ddMatthew Wild2022-06-090-0/+0
| |
* | net.server: Fix multiple return valuesKim Alvefur2022-06-033-11/+26
| | | | | | | | | | | | | | return foo and foo() crops multiple return values to a single one, so any second return values etc were last, mostly error details. Introduced in 7e9ebdc75ce4
* | mod_saslauth: Advertise channel bindings via XEP-0440Kim Alvefur2020-12-063-0/+22
| | | | | | | | | | This is useful when there's more than one channel binding in circulation, since perhaps there will be varying support for them.
* | mod_admin_shell: Include last (mod_cron) task run time in module:info()Kim Alvefur2022-06-011-1/+11
| | | | | | | | Don't think this is otherwise shown anywhere outside of debug logs
* | util.prosodyctl.shell: Print errors in red to highlight themKim Alvefur2022-06-011-1/+8
| |
* | mod_admin_shell: Drop unused argument [luacheck]Kim Alvefur2022-05-311-1/+1
| |
* | mod_admin_shell: Show bound ports in module:infoKim Alvefur2022-05-311-1/+11
| | | | | | | | I.e. the subset of port:list() relevant to the specified module.
* | mod_admin_shell: Document the 'watch' section in the built-in helpKim Alvefur2022-05-301-0/+4
| |
* | util.openmetrics: Set __name field on metatables to improve error messagesKim Alvefur2022-05-301-0/+3
| | | | | | | | Don't think we cause any such errors right now, but you never know!
* | util.openmetrics: Set (previously unused, empty) metatableKim Alvefur2022-05-301-2/+2
| | | | | | | | Silences luacheck warning about the metatable being unused.
* | luacheck: Ignore new warning about uses of `not (x == y)` and similarKim Alvefur2022-05-301-1/+1
| | | | | | | | Added in luacheck 0.26.
* | luacheck: Ignore new warning about using variables prefixed with '_'Kim Alvefur2022-05-301-1/+1
| | | | | | | | | | | | | | | | | | luacheck 0.26 considers the _ prefix as a hint that the variable or argument is unused, then warns if they are used despite this. We have several places where this prefix is used to avoid shadowing another similarly named variable, resulting in many instances of this warning.