aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
...
* | | util.pluginloader: Look for top level mod_something.lua in luarocks-style treeKim Alvefur2020-10-051-0/+1
| | |
* | | util.pluginloader: Extract Lua version onceKim Alvefur2020-10-051-1/+1
| | | | | | | | | | | | It's not going to change while the module is loaded.
* | | util.xml: Fix float formatting of line and columns in error (on Lua 5.3+)Kim Alvefur2020-10-031-1/+1
| | |
* | | Merge 0.11->trunkMatthew Wild2020-09-301-1/+1
|\| |
| * | util.indexedbheap: Fix heap datastructure corruption in ↵Waqas Hussain2020-09-291-1/+1
| |/ | | | | | | :reschedule(smaller_value)
| * util.startup: Configure the GC on startup, using the config or built-in defaultsMatthew Wild2020-06-151-0/+17
| |
| * util.gc: Linter fixes [luacheck]Matthew Wild2020-06-151-2/+1
| |
| * util.gc: New module for configuring the Lua garbage collectorMatthew Wild2020-06-151-0/+50
| |
* | util.error: Drop registry initialization with namespace as keyKim Alvefur2020-09-281-4/+0
| | | | | | | | Enough complexity with compact vs normal and with/without namespace
* | util.error: Expand compact registries into normal form internallyKim Alvefur2020-09-281-8/+34
| | | | | | | | Also the exposed form on the table returned from init()
* | util.error: Add a "compact mode" for registriesKim Alvefur2020-09-281-4/+7
| | | | | | | | Inspired by the older registry in pubsub.lib.lua
* | util.error: Expose source and registry as fields on the registry objectKim Alvefur2020-09-281-0/+2
| | | | | | | | For access, e.g. to identify and compare errors later
* | util.error: Turns out <gone> wasn't alone, there's also <redirect>Kim Alvefur2020-09-281-2/+7
| |
* | util.error: Pass converted stanza errors throguh new()Kim Alvefur2020-09-271-6/+3
| | | | | | | | In order to benefit from common processing
* | util.serialization: Let freeze metamethod return a literal stringKim Alvefur2020-09-261-0/+4
| | | | | | | | | | Enables custom serialization, such as creating a datatype that serializes into a variable reference.
* | util.error: Collect Application-Specific Conditions from stanza errorsKim Alvefur2020-09-261-2/+3
| |
* | util.error: Add special case handling of <gone> with an URIKim Alvefur2020-09-261-0/+3
| |
* | util.error: Default error originator to stanza senderKim Alvefur2020-09-261-1/+2
| | | | | | | | | | The @by attribute is primarily useful for errors caused by intermediate entities.
* | util.error: Extract error originator from stanza errorsKim Alvefur2020-09-261-1/+6
| |
* | util.stanza: Extract Application-Specific Condition from errorsKim Alvefur2020-09-261-6/+8
| | | | | | | | API change
* | util.stanza: Support Application-Specific Conditions in util.errorKim Alvefur2020-09-261-0/+5
| |
* | util.stanza: Get 'by' from context insteadKim Alvefur2020-09-261-1/+1
| | | | | | | | | | | | | | Zash> <error by=?> should go where? extra.by? context? source? Zash> In Prosody this would usually be module.host or a bare user/room JID MattJ> Zash: context MattJ> context.by, basically the opposite of context.actor
* | util.stanza: Support inclusion of <gone> URI from util.error objectKim Alvefur2020-09-261-2/+8
| |
* | util.stanza: Support getting 'by' from util.error objectKim Alvefur2020-09-261-0/+3
| |
* | util.stanza: Reorder code to prepare for extracting 'by' from util.errorKim Alvefur2020-09-261-3/+3
| |
* | util.error: Add well-known field 'extra'Kim Alvefur2020-09-261-0/+2
| | | | | | | | | | A place for various extra fields and edge cases of the stanza error data model, e.g. the URI field of <gone>
* | util.error: Simplify error creation flowMatthew Wild2020-09-251-1/+13
| |
* | util.error: Switch coerce() to use new() and change 'native' to context ↵Matthew Wild2020-09-251-5/+3
| | | | | | | | field 'wrapped_error'
* | 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.