Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | util.async tests: Explicitly import match from luassert (luacheck) | Matthew Wild | 2021-11-29 | 1 | -0/+1 | |
| | ||||||
* | util.async: Add next-tick configuration | Matthew Wild | 2021-11-29 | 1 | -0/+46 | |
| | | | | | | | | Running woken runners in the next iteration of the event loop prevents unexpected recursion, unexpected tracebacks, and is generally more predictable. The pattern is borrowed from util.promise, where we're now doing the same. | |||||
* | util.async: Add sleep() method with configurable scheduling backend | Matthew Wild | 2021-11-29 | 1 | -0/+54 | |
| | | | | | | | | | No scheduler set by default, so it will error (we plan to initialize it in util.startup). We wanted to avoid a hard dependency on util.timer (which in turn depends on network backends, etc.), and we didn't add timer.sleep() because we didn't want to add a hard dependency on util.async for things that don't need it. | |||||
* | util.promise: Fix test | Kim Alvefur | 2021-11-26 | 1 | -1/+1 | |
| | | | | | Could not reproduce locally but it complained in CI that > spec/util_promise_spec.lua:676: Cannot spy on type 'nil', only on functions or callable elements | |||||
* | util.promise: Support delayed promise execution | Kim Alvefur | 2019-01-05 | 1 | -0/+14 | |
| | ||||||
* | util.human.io: Fix cutting of UTF-8 into pieces | Kim Alvefur | 2021-11-12 | 1 | -0/+19 | |
| | | | | Down the rabbit hole we go... | |||||
* | util.dataforms: Ensure larger integers are serialized as such | Kim Alvefur | 2021-10-28 | 1 | -0/+6 | |
| | | | | | | | Assumes that most number fields are integers, as most numeric types listed in XEP-0122 are, as are all such fields in Prosody as of this. Otherwise %g produces something like 1.1259e+15 | |||||
* | util.dataforms: Scope integer handling tests | Kim Alvefur | 2021-10-26 | 1 | -26/+29 | |
| | | | | | So they're separate from the datetime tests, and any future validation tests | |||||
* | util.dataforms: Turn number values into timestamps for datetime fields | Kim Alvefur | 2021-10-26 | 1 | -1/+1 | |
| | | | | Makes it symmetric with parsing. | |||||
* | util.dataforms: Coerce number values for boolean fields | Kim Alvefur | 2021-10-26 | 1 | -0/+10 | |
| | | | | | Makes more sense than coercing to a string, which would always be truthy. | |||||
* | util.dataforms: Add support for datetime field types via XEP-0122 | Kim Alvefur | 2021-10-25 | 1 | -0/+14 | |
| | ||||||
* | mod_pubsub,mod_pep: Advertise maximum number of items via XEP-0122 | Kim Alvefur | 2021-10-20 | 4 | -6/+6 | |
| | | | | | | Clients would generally be using the "max" symbol instead of discovering this, but this also gets us validation and earlier rejection of out of bounds values. | |||||
* | mod_pubsub: Prevent max_items from being set to zero | Kim Alvefur | 2021-10-20 | 4 | -6/+18 | |
| | | | | | | | Disable persistence instead if no items should be persisted. XEP-0060 is not entirely clear on what either of those option really mean. | |||||
* | mod_pubsub,mod_pep: Implement 'send_last_published_item' option #1436 | Kim Alvefur | 2021-10-19 | 5 | -0/+206 | |
| | | | | | | | | Default left as 'never' in mod_pubsub to preserve the previous behavior. Unclear if this is desirable, but can always be changed later. In mod_pep this allows turning off the automatic resending of most recent item. | |||||
* | util.argparse: Add test for #1691 | Kim Alvefur | 2021-10-12 | 1 | -0/+7 | |
| | ||||||
* | util.argparse: Tests | Kim Alvefur | 2021-10-12 | 1 | -0/+46 | |
| | ||||||
* | util.array: Add :slice() method + tests | Matthew Wild | 2021-09-12 | 1 | -0/+19 | |
| | | | | Behaviour follows the same logic as string.sub (so yes, 1-indexed). | |||||
* | util.stanza: Add :get_child_with_attr() + tests | Matthew Wild | 2021-09-12 | 1 | -0/+20 | |
| | ||||||
* | mod_pubsub: Add support for limiting result size #1608 | Kim Alvefur | 2021-09-05 | 1 | -0/+196 | |
| | ||||||
* | util.pubsub: Add support for limiting number of items to retrieve | Kim Alvefur | 2021-09-05 | 1 | -0/+57 | |
| | | | | | Hopefully this will eventually be upgraded to RSM, which is why the argument is called 'resultspec' and is a table. | |||||
* | mod_external_services: Validate required attributes on credentials requests | Kim Alvefur | 2021-08-29 | 1 | -0/+14 | |
| | ||||||
* | core.storagemanager: Respect archive ids issued by storage drivers in tests | Kim Alvefur | 2021-08-15 | 1 | -5/+6 | |
| | | | | | | Storage drivers may issue their own IDs tho none of the included ones do this atm, but the 3rd party module mod_storage_xmlarchive has its special format. | |||||
* | Fix various spelling errors (thanks codespell) | Kim Alvefur | 2021-07-27 | 2 | -2/+2 | |
| | | | | | Also special thanks to timeless, for wordlessly reminding me to check for typos. | |||||
* | util.pubsub: Signal that 'persistent-items' is unsupported when disabled | Kim Alvefur | 2021-07-22 | 1 | -2/+2 | |
| | | | | | | XEP-0060 says that this the way to indicate that 'persistent-items' is unsupported, but doesn't explicitly say if it being disabled in the node configuration also counts as unsupported. | |||||
* | util.pubsub: Fix behavior of persist_items disabled | Kim Alvefur | 2021-07-22 | 1 | -0/+19 | |
| | | | | | | | | | | | | | When set to 'false' there is no need for a persistence interface at all, since items are not persisted after being broadcast. Had started wondering if maybe the behavior was wrong, after reading parts of XEP-0060 that pointed in that direction. Some discussion of this can be found in logs of xmpp:xsf@muc.xmpp.org?join from around 2021-07-20 Thanks to Ralph for confirming. | |||||
* | mod_pubsub: Explicitly enable persistence by default to preserve behavior | Kim Alvefur | 2021-07-21 | 1 | -1/+1 | |
| | | | | | | Since nodes were always persistent according to the XEP-0060 definition. Whether data is stored in memory or on disk was not what this setting was meant for. | |||||
* | scansion tests: Enable 'expose_publisher' since we test for it | Kim Alvefur | 2021-07-25 | 1 | -0/+1 | |
| | ||||||
* | mod_pubsub: Fix inclusion of publisher (fixes #1399) | Kim Alvefur | 2019-05-01 | 5 | -15/+15 | |
| | ||||||
* | Merge 0.11->trunk | Kim Alvefur | 2021-07-23 | 1 | -57/+83 | |
|\ | ||||||
| * | MUC: Fix logic for access to affiliation lists0.11.10 | Kim Alvefur | 2021-07-22 | 1 | -57/+83 | |
| | | | | | | | | | | | | Fixes https://prosody.im/security/advisory_20210722/ Backs out 4d7b925652d9 | |||||
* | | scansion tests: Allow specifying network settings via environment variable | Kim Alvefur | 2021-07-11 | 1 | -2/+1 | |
| | | | | | | | | | | | | | | Allows testing e.g. opportunistic writes or other settings easily in CI or otherwise without editing the config file. make integration-test PROSODY_NETWORK_SETTINGS='{"opportunistic_writes":true}' | |||||
* | | scansion tests: Allow specifying network backend via environment variable | Kim Alvefur | 2021-07-11 | 1 | -1/+1 | |
| | | | | | | | | | | | | | | To make it easier to test select and event without having to edit the config file, e.g. in CI. make integration-test PROSODY_NETWORK_BACKEND=event | |||||
* | | util.format: Change formatting of nil values to avoid looking like XML | Kim Alvefur | 2021-06-29 | 1 | -4/+4 | |
| | | ||||||
* | | util.format: Escape ASCII control characters in output | Kim Alvefur | 2021-06-15 | 1 | -0/+5 | |
| | | | | | | | | | | | | | | This should offer some protection against doing evil things to terminals. Doesn't protect against pure broken UTF-8 garbage however. See #734 | |||||
* | | util.dbuffer: Fix bugs, remove multi-char support (more complex than first ↵ | Matthew Wild | 2021-06-29 | 1 | -21/+0 | |
| | | | | | | | | | | | | | | | | | | thought) Character sequences could be split across chunk boundaries. Would require a bunch of code to make that work reliably. Only apply front_consumed on first chunk, and adjust buffer_pos accordingly. | |||||
* | | util.dbuffer: Add read_until() method | Matthew Wild | 2021-06-29 | 1 | -0/+44 | |
| | | ||||||
* | | mod_pubsub,mod_pep: Support "max" as 'pubsub#max_items' | Kim Alvefur | 2021-06-09 | 4 | -5/+52 | |
| | | | | | | | | | | | | Fixes #1643 API change: The argument to archive_itemstore() changes type to integer | |||||
* | | scansion: Really silence the certificates dir error | Kim Alvefur | 2021-05-28 | 1 | -1/+1 | |
| | | | | | | | | certificate_s_, plural, is the directory setting | |||||
* | | scansion: Silence an error from cert indexer due to missing certs dir | Kim Alvefur | 2021-05-27 | 1 | -1/+4 | |
| | | ||||||
* | | core.modulemanager: Inherit mod_server_contact_info onto components #1270 | Kim Alvefur | 2021-05-27 | 1 | -1/+0 | |
| | | ||||||
* | | mod_server_contact_info: Apply JID normalization | Kim Alvefur | 2020-09-11 | 2 | -0/+27 | |
| | | ||||||
* | | util.datamapper: Fix spelling in tests | Kim Alvefur | 2021-03-28 | 1 | -2/+2 | |
| | | ||||||
* | | util.envload: Add basic test of envload() | Kim Alvefur | 2021-03-26 | 1 | -0/+22 | |
| | | ||||||
* | | util.datamapper: Revert one special attribute to longer form | Kim Alvefur | 2021-03-26 | 1 | -1/+1 | |
| | | | | | | | | Had a name, using attr() broke it. | |||||
* | | util.datamapper: Use attribute convenience function throughout | Kim Alvefur | 2021-03-26 | 1 | -3/+4 | |
| | | ||||||
* | | util.promise: Switch order of parameters to join() | Matthew Wild | 2021-03-25 | 1 | -2/+2 | |
| | | | | | | | | | | This saves awkward fiddlery with varargs and also echoes the signature of pcall/xpcall. | |||||
* | | util.promise: all()/all_settled() pass through non-promise values | Matthew Wild | 2021-03-25 | 1 | -0/+33 | |
| | | ||||||
* | | util.promise: Add join() convenience method | Matthew Wild | 2021-03-25 | 1 | -0/+26 | |
| | | | | | | | | | | | | Usage: promise.join(p1, p2, function (result1, result2) [...] end) | |||||
* | | util.promise: Add support for arbitrary keys in all()/all_settled() | Matthew Wild | 2021-03-25 | 1 | -0/+37 | |
| | | ||||||
* | | util.datamapper: Add test coverage of unwrapped arrays of objects | Kim Alvefur | 2021-03-24 | 1 | -0/+14 | |
| | | | | | | | | | | Should the xml name/ns go on the array or the items schema? The later apparently. |