aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge 0.11->trunkMatthew Wild2020-09-302-2/+20
|\
| * util.indexedbheap: Fix heap datastructure corruption in ↵Waqas Hussain2020-09-292-1/+34
| | | | | | | | :reschedule(smaller_value)
* | Merge 0.11->trunkMatthew Wild2020-09-292-85/+119
|\ \
| * | mod_websocket: Refactor frame validity checking, also check ↵Matthew Wild2020-09-291-77/+95
| | | | | | | | | | | | partially-received frames against constraints
| * | net.websocket.frames: Additionally return partial frame if there is oneMatthew Wild2020-09-291-1/+1
| | |
| * | mod_websocket: Continue to process data already in the buffer after an error ↵Matthew Wild2020-09-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | occurs Previously any error, or even a normal websocket close frame, would return early, leaving potentially entire frames in the buffer unprocessed and then discarded. This change stops processing new data, but returns an existing processed data up to the point of the error/close.
| * | mod_websocket: Enforce stanza size limit and close streamMatthew Wild2020-09-171-0/+4
| | |
| * | mod_websocket: Add separate limit for frame buffer sizeMatthew Wild2020-09-171-2/+2
| | |
| * | mod_websocket: handle full frame buffer and raise stream errorMatthew Wild2020-09-171-1/+5
| | |
| * | mod_websocket: Switch partial frame buffering to util.dbufferMatthew Wild2020-09-172-5/+10
| | | | | | | | | | | | | | | This improves performance and enforces stanza size limits earlier in the pipeline.
| * | net.websocket.frames: Allow all methods to work on non-string objectsMatthew Wild2020-09-171-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | Instead of using the string library, use methods from the passed object, which are assumed to be equivalent. This provides compatibility with objects from util.ringbuffer and util.dbuffer, for example.
| * | util.dbuffer: Simplify test caseKim Alvefur2020-08-241-0/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | An earlier theory involved the bug being related to collapsing multiple items, so it exercised that too. Also correct the comment, it referred to the space in "hello world" in an earlier version before the test string was changed to "foobar", which was what was tested in a REPL
| * | util.dbuffer: Fix :sub() not working with partially-consumed chunks (thanks ↵Matthew Wild2020-08-241-0/+176
| | | | | | | | | | | | | | | | | | Zash for test case) This also appears to fix some bugs with chunk-encoded streams in net.http.parser.
| * | util.dbuffer: dynamic string bufferMatthew Wild2020-06-261-0/+7
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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.error: Drop registry initialization with namespace as keyKim Alvefur2020-09-282-15/+4
| | | | | | | | Enough complexity with compact vs normal and with/without namespace
* | util.error: Expand compact registries into normal form internallyKim Alvefur2020-09-282-8/+66
| | | | | | | | Also the exposed form on the table returned from init()
* | util.error: Add a "compact mode" for registriesKim Alvefur2020-09-282-4/+28
| | | | | | | | Inspired by the older registry in pubsub.lib.lua
* | CHANGES: Add util.errorKim Alvefur2020-09-281-0/+1
| |
* | 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: Cover registry initialization in testKim Alvefur2020-09-281-0/+20
| |
* | net.http.server: Default to HTTP result code 500 when promise is rejectedMatthew Wild2020-09-281-0/+1
| |
* | 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-262-3/+5
| |
* | 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-262-2/+8
| |
* | util.stanza: Extract Application-Specific Condition from errorsKim Alvefur2020-09-262-6/+21
| | | | | | | | API change
* | spec.stanza spec: Split up util.error related testsKim Alvefur2020-09-261-0/+8
| |
* | util.stanza: Support Application-Specific Conditions in util.errorKim Alvefur2020-09-262-1/+18
| |
* | util.stanza: Get 'by' from context insteadKim Alvefur2020-09-262-2/+2
| | | | | | | | | | | | | | 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-262-2/+13
| |
* | util.stanza: Support getting 'by' from util.error objectKim Alvefur2020-09-262-1/+5
| |
* | 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-262-0/+10
| | | | | | | | | | 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
| |
* | Merge 0.11->trunkMatthew Wild2020-09-190-0/+0
|\|
| * 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.dataforms: Add support for validating (integer) rangesKim Alvefur2019-11-212-1/+22
| |
* | doap: Add XEP-0307Kim Alvefur2020-09-161-0/+9
| | | | | | | | | | Support first added in 2919f3b985fc and later moved into its own module in 3a1c39b31497
* | Merge 0.11->trunkMatthew Wild2020-09-151-0/+3
|\|
| * net.http: Add feature discovery (currently just contains SNI)Matthew Wild2020-09-151-0/+3
| |