aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* util.error: Have init() return an object to allow API extensibility via ↵Matthew Wild2020-09-251-3/+5
| | | | additional methods
* util.error: Minor tweaks to error creation code to prepare for future changesMatthew Wild2020-09-251-2/+5
|
* util.error: Simplify error creation - remove ability to set context from ↵Matthew Wild2020-09-251-1/+1
| | | | templates, and remove default context
* util.error: Add unique 'instance_id' to error objectsMatthew Wild2020-09-251-0/+2
|
* util.dataforms: Add support for validating (integer) rangesKim Alvefur2019-11-211-1/+13
|
* util.interpolation: Add '~' as the opposite of '&' (render sub-block if falsy)Matthew Wild2020-09-091-0/+3
| | | | One more magic character consumed!
* util.helpers: when logging events, log individual handler callsMatthew Wild2020-09-031-0/+15
|
* util.events: Add set_debug_hook() methodMatthew Wild2020-09-031-1/+19
| | | | | | Hook signature: ret = debug_hook(handler, event_name, event_data)
* util.jid: Fix special escaping of '\' per XEP-0106Kim Alvefur2020-08-281-2/+6
| | | | | | | | | | | | From XEP-0106 §2. Requirements: > in certain circumstances, the escaping character itself ("\") might > also be escaped Later in §4.2 Address Transformation Algorithm it is stated that the backslash would only be escaped if it forms an escape sequence. Thus '\foo' is unaltered but '\20' must be escaped into '\5c20'. Thanks to lovetox and jonas’ for brining up.
* util.error: Add a wrapper for common parametersKim Alvefur2020-08-281-0/+7
| | | | Lets you set up source and registry once per module
* util.error: Add a 'source' parameter where origin module can be mentionedKim Alvefur2020-08-281-1/+2
|
* util.startup: Init util.error with defaults if none givenMatthew Wild2020-08-281-1/+1
|
* util.error: Add configuration for including traceback in tostring()Matthew Wild2020-08-281-2/+12
|
* util.error: Allow optional tracebacks to be injected on errorsMatthew Wild2020-08-282-0/+21
| | | | This allows extra debug info to be provided for development purposes.
* util.dbuffer: Fix :sub() not working with partially-consumed chunks (thanks ↵Matthew Wild2020-08-241-1/+1
| | | | | | Zash for test case) This also appears to fix some bugs with chunk-encoded streams in net.http.parser.
* util.dbuffer: Fix traceback when :collapse() is called on empty bufferMatthew Wild2020-08-201-1/+1
|
* util.dataforms: Convert media element sizes to avoid error on Lua 5.3Kim Alvefur2020-08-161-1/+1
| | | | | | | | The stanza API does not accept number values and threw an error due to the height and width attributes of the media element (XEP-0221). This part had no test coverage previously, explaining why it was not discovered until now.
* util.timer: Defer to selected net.server if it implements this APIKim Alvefur2020-06-291-0/+5
| | | | | E.g. net.server_epoll is very close and could easily be adapted to support this.
* util.dbuffer: If no bytes parameter passed to read, return remainder of ↵Matthew Wild2020-06-291-2/+7
| | | | frontmost chunk
* util.dependencies: Quiet luacheckKim Alvefur2020-06-281-2/+2
|
* util.dependencies: Tone down lua-unbound dependency for nowKim Alvefur2020-06-271-0/+2
| | | | | | At least until packages are available Wording from MattJ
* util.dbuffer: dynamic string bufferMatthew Wild2020-06-262-0/+178
| | | | | | | | | | | | | | 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
* util.dependencies: Prefer net.unbound over net.adnsKim Alvefur2020-06-251-0/+5
|
* util.dependencies: Add awareness of luaunboundKim Alvefur2020-06-251-0/+8
|
* util.dns: Library for decoding DNS recordsKim Alvefur2019-03-091-0/+271
| | | | Imported from luaunbound-prosody 5f7c771138b1
* Merge 0.11->trunkKim Alvefur2020-06-231-1/+0
|\
| * util.startup: Remove duplicated initialization of logging (fix #1527)Kim Alvefur2020-06-221-1/+0
| |
* | util.adminstream: Prevent closure on read timeoutKim Alvefur2020-06-181-1/+1
| |
* | 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
| |
* | 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.
* | util.statsd: Update for API changeKim Alvefur2020-06-111-5/+5
| | | | | | | | See change d75d805c852f to util.statistics
* | util.promise: Add all_settled, which follows semantics of allSettled from ES2020Matthew Wild2020-06-081-0/+22
| |
* | util.sslconfig: Process TLS 1.3-specific cipher listKim Alvefur2020-06-071-0/+3
| | | | | | | | Same way as with other cipher list options
* | util.human.io: Fix right-alignmentKim Alvefur2020-06-061-1/+1
| |
* | Merge 0.11->trunkKim Alvefur2020-06-062-1/+5
|\|
| * util.sasl.plain: Apply saslprep to stored passwordKim Alvefur2020-05-221-1/+1
| | | | | | | | | | | | Fixes something like #1560 here too. The password sent by the user already had saslprep applied.
| * util.sasl.scram: Apply saslprep before hashing password, fixes #1560Kim Alvefur2020-05-221-0/+4
| |
| * util.prosodyctl: Tell prosody do daemonize via command line flag (fixes #1514)Kim Alvefur2020-01-261-2/+2
| | | | | | | | Backport of 88be11e9f9b9
* | util.human.io.table: Allow a map callaback per columnKim Alvefur2020-06-041-1/+1
| | | | | | | | | | | | This allows e.g. mapping booleans to "yes" or "no", specific number formatting or generating virtual columns. All while not mutating the underlying data or creating additional temporary tables.
* | util.human.io: Consider separator when calculating remaining widthKim Alvefur2020-06-041-0/+3
| |