aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* util.dbuffer: dynamic string bufferMatthew Wild2020-06-263-0/+273
| | | | | | | | | | | | | | Similar to util.ringbuffer (and shares almost identical API). Differences: - size limit is optional and dynamic - does not allocate a fixed buffer of max_size bytes - focus on simply storing references to existing string objects where possible, avoiding unnecessary allocations - references are still stored in a ring buffer to enable use as a fast FIFO Optional second parameter to new() provides the number of ring buffer segments. On Lua 5.2 on my laptop, a segment is ~19 bytes. If the ring buffer fills up, the next write will compact all strings into a single item.
* util.dns: Update RR types from IANA registryKim Alvefur2020-06-251-17/+23
|
* util.prosodyctl.check: Use net.unbound for DNS if availableKim Alvefur2020-06-251-0/+3
| | | | Improves performance somewhat by avoiding the rate limiting in net.dns
* net.resolvers: Remove FIXMEs obsoleted by switch to libunboundKim Alvefur2020-06-252-5/+0
|
* CHANGES: Add libunboundKim Alvefur2020-06-251-0/+1
|
* net.unbound: Remove compat for missing promises (pre-0.11)Kim Alvefur2020-06-251-15/+12
| | | | | Code existed in a separate project before merged into Prosody, so util.promise was not always around.
* net.unbound: Strip support for legacy net.server APIsKim Alvefur2020-06-251-37/+3
| | | | | These are not needed since the watchfd API is provided by all net.server backends.
* net.adns: Log a warning if loaded (because net.unbound wasn't)Kim Alvefur2020-06-251-0/+2
|
* util.dependencies: Prefer net.unbound over net.adnsKim Alvefur2020-06-251-0/+5
|
* prosodyctl about: Report versions of luaunbound and libunboundKim Alvefur2020-06-251-0/+7
|
* util.dependencies: Add awareness of luaunboundKim Alvefur2020-06-251-0/+8
|
* net.unbound: Async DNS resolver library based on libunbound via luaunboundKim Alvefur2019-03-091-0/+245
|
* util.dns: Library for decoding DNS recordsKim Alvefur2019-03-091-0/+271
| | | | Imported from luaunbound-prosody 5f7c771138b1
* util.ringbuffer: Fix accidentally committed test change (thanks buildbot)Matthew Wild2020-06-251-1/+1
|
* net.dns: Reduce default timeout to 5sMatthew Wild2020-06-251-1/+1
| | | | | Most healthy queries will return well within this time, and the new retry logic should help spread the cost of additional retries.
* net.dns: Increase backoff delaysMatthew Wild2020-06-251-1/+1
| | | | Not entirely happy with the overall logic here.
* net.dns: Add jitter to spread queries and reduce failures due to congestionMatthew Wild2020-06-251-2/+20
|
* net.dns: Fix timeout retry logicMatthew Wild2020-06-251-16/+21
| | | | | | | On timeout the query would be resent twice - once within servfail(), and again inside the timeout callback. This commit moves all retry logic to servfail().
* net.dns: Add some debug loggingMatthew Wild2020-06-251-0/+4
|
* util.ringbuffer: Add some additional asserts to testsMatthew Wild2020-06-241-4/+4
|
* util.ringbuffer: Ensure unsigned chars are always returned from :byte()Matthew Wild2020-06-242-3/+10
|
* Merge 0.11->trunkKim Alvefur2020-06-231-1/+2
|\
| * net.http.server: Fix reporting of missing Host headerKim Alvefur2020-06-231-1/+2
| | | | | | | | | | The "Missing or invalid 'Host' header" case was dead code previously because `host` was always at least an empty string.
| * net.http.server: Strip port from Host header in IPv6 friendly way (fix #1302)Kim Alvefur2020-06-231-1/+1
| | | | | | | | | | E.g. given `[::1]:5280` it would previously result in only `[` instead of the correct `[::1]`
* | util.ringbuffer: Add test for :discard()Matthew Wild2020-06-231-0/+11
| |
* | Merge 0.11->trunkKim Alvefur2020-06-231-1/+0
|\|
| * util.startup: Remove duplicated initialization of logging (fix #1527)Kim Alvefur2020-06-221-1/+0
| |
* | mod_register_ibr: Add event for successful password resetMatthew Wild2020-06-221-0/+1
| | | | | | | | | | | | | | | | This is in addition to the existing event for password changes. This one includes additional details about the actor, and only triggers when the change is due to the account owner (presumably) resetting. As example use case is to invalidate one-time password reset tokens.
* | net.connect: Remove TODO about use_ipv4/6 done in 3bfb20be844cKim Alvefur2020-06-222-2/+0
| |
* | Merge 0.11->trunkKim Alvefur2020-06-211-3/+0
|\|
| * mod_muc_mam: Don't strip MUC <x> tags, fix #1567Kim Alvefur2020-06-211-3/+0
| |
* | scansion tests: Enable mod_muc_mam during tests (expect breakage)Kim Alvefur2020-06-211-0/+4
| |
* | MUC: Remove XEP-0091 Legacy Delayed Delivery from testKim Alvefur2020-06-211-1/+0
| | | | | | | | | | | | | | Long time Obsolete XEP. The element is apparently not included when mod_muc_mam is enabled, and deleting this seems like the sanity-preserving approach.
* | util.adminstream: Prevent closure on read timeoutKim Alvefur2020-06-181-1/+1
| |
* | mod_register_ibr: Allow registration to reset an existing account password ↵Matthew Wild2020-06-181-6/+19
| | | | | | | | if permitted by a plugin
* | util.prosodyctl.shell: Collect extra return valuesKim Alvefur2020-06-171-1/+1
| | | | | | | | Forgot in previous commit
* | util.prosodyctl.shell: Handle argument parsing errorsKim Alvefur2020-06-171-0/+9
| | | | | | | | | | | | While almost identical to the handling in util.startup, this seems more appropriate. It would also simplify if shell-specific options need to be handled in the future.
* | util.argparse: Move exiting and error to util.startupKim Alvefur2020-06-172-6/+13
| | | | | | | | | | | | | | | | It's not so nice to have a library that exits the entire application from under you, so this and the error reporting belongs in util.startup. The argparse code was originally in util.startup but moved out in 1196f1e8d178 but the error handling should have stayed.
* | util.gc: Linter fixes [luacheck]Matthew Wild2020-06-151-2/+1
| |
* | util.startup: Configure the GC on startup, using the config or built-in defaultsMatthew Wild2020-06-151-0/+17
| |
* | util.gc: New module for configuring the Lua garbage collectorMatthew Wild2020-06-151-0/+50
| |
* | util.prosodyctl.check: Fix traceback by handling SRV '.' target toKim Alvefur2020-06-141-0/+8
| | | | | | | | | | The IDNA to-ASCII operation returns nil in this case, which causes an error in net.dns
* | util.async: Don't attempt to close thread if not created yetMatthew Wild2020-06-141-1/+1
| |
* | util.async: Call coroutine.close() on dead threads (Lua 5.4)Matthew Wild2020-06-141-1/+5
| |
* | mod_admin_shell: Update for async.wait_for renameKim Alvefur2020-06-131-2/+2
| |
* | util.async: Rename wait -> wait_for (w/compat)Matthew Wild2020-06-131-2/+3
| | | | | | | | Agreed this name is clearer and wait_for(thing) reads well in code.
* | storage tests: Add tests for archive queries before/after specific idsMatthew Wild2020-06-121-5/+47
| | | | | | | | | | Also increased the size of the test data for easier debugging with more complex tests.
* | mod_storage_internal, mod_storage_memory: Add support for query.beforeMatthew Wild2020-06-122-4/+10
| | | | | | | | Previously returned all results.
* | mod_storage_sql: Fix incorrect results when fetching items before specific ↵Matthew Wild2020-06-121-1/+1
| | | | | | | | | | | | archive id Copy/paste error, introduced in deb68066c7aa
* | util.statsd: Update for API changeKim Alvefur2020-06-111-5/+5
| | | | | | | | See change d75d805c852f to util.statistics