aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mod_pubsub: Don't set store as metatableKim Alvefur2020-10-251-1/+1
| | | | | 'archive' is not a metatable here, so this has no effect. Remove since apparently nothing depends on this.
* net.http: Add support for streaming chunked/large responsesMatthew Wild2020-10-211-0/+18
|
* net.http.parser: Expose 'partial', 'chunked' and 'body_length' on packetsMatthew Wild2020-10-211-2/+15
|
* util.paths: Optimize path joining with few argumentsKim Alvefur2020-10-111-2/+12
| | | | | | | | | A casual search suggests that the majority of paths.join() calls involve only two arguments. This saves the creation of a table for up to 3 arguments. Looks like 3x faster for 3 arguments or less, 5% slower when it uses the array to concatenate.
* util_paths_spec: Trim trailing white spaceKim Alvefur2020-10-171-1/+1
| | | | And add spacing between describe() blocks
* util.paths: Add some testsKim Alvefur2020-10-171-0/+39
|
* MUC: Remove XEP-0091: Legacy Delayed DeliveryKim Alvefur2020-10-172-3/+4
| | | | | | | Why do we still include this? Deprecated in 2007, obsoleted in 2009. Removes redundant timestamp that nobody should be looking at since many years and a redundant copy of the room JID.
* mod_posix: Hook and fire events on SIGUSR1/2Matthew Wild2020-10-161-0/+15
|
* Merge 0.11->trunkMatthew Wild2020-10-162-1/+94
|\
| * util.debug: Fix locals being reported under wrong stack frame in some cases ↵Matthew Wild2020-10-162-1/+94
| | | | | | | | (+tests!!)
* | Merge 0.11->trunkKim Alvefur2020-10-151-0/+4
|\|
| * Back out changeset 2c1583bb0e0fKim Alvefur2020-10-151-0/+4
| | | | | | | | Same reason as 712b2e6a09d9
* | util.sasl.scram: Use util.strbitop for XOR stepKim Alvefur2019-09-071-29/+1
| |
* | Merge 0.11->trunkKim Alvefur2020-10-151-17/+6
|\|
| * Back out 6dde2c9fa272: Doesn't work on Lua 5.1Kim Alvefur2020-10-151-13/+6
| |
| * util.strbitop: Remove redundant init functionKim Alvefur2020-10-151-4/+0
| | | | | | | | | | When you have 3 almost identical functions, you tend to edit one and then copypaste. Forgot to remove this line from the other two.
* | Merge 0.11->trunkKim Alvefur2020-10-152-15/+63
|\|
| * util.strbitop: Create buffer in the correct size (optimization)Kim Alvefur2020-10-151-6/+13
| | | | | | | | | | This avoids dynamically growing the buffer as Lua does when luaL_addchar is used, thus saving on realloc calls.
| * util.strbitop: Add tests covering basicsKim Alvefur2020-10-151-0/+41
| | | | | | | | Also as docs
| * util.strbitop: Reformat codeKim Alvefur2020-10-151-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | astyle \ --indent=tab \ --attach-classes \ --indent-switches \ --break-blocks \ --pad-oper \ --unpad-paren \ --add-braces \ --align-pointer=name \ --lineend=linux \ *.c
* | Merge 0.11->trunkMatthew Wild2020-10-155-29/+114
|\|
| * net.websocket.frames: Add test for empty frame with MASK and key setMatthew Wild2020-10-151-0/+10
| |
| * net.websocket.frames: Use C string XOR implementationKim Alvefur2020-10-142-24/+8
| |
| * util.strbitop: Library for bitwise operations on stringsKim Alvefur2019-09-073-2/+93
| |
| * net.websocket.frames: Add small test covering xor-maskingKim Alvefur2020-10-141-0/+13
| | | | | | | | This is basically a recording of current behavior, to detect changes.
* | util.error: Pass through existing error objects passed to new()Matthew Wild2020-10-151-0/+1
| |
* | Merge 0.11->trunkMatthew Wild2020-10-131-1/+4
|\|
| * net.http.server: Don't send Content-Length on 1xx/204 responses, per RFC ↵Matthew Wild2020-10-131-1/+4
| | | | | | | | (fixes #1596)
* | Merge 0.11->trunkKim Alvefur2020-10-123-3/+5
|\|
| * net.websocket.frames: Read buffer length correctly in Lua 5.1 (fix #1598)Kim Alvefur2020-10-121-3/+3
| | | | | | | | | | | | | | COMPAT: The __len metamethod does not work with tables in Lua 5.1. Both strings and util.dbuffer now expose their length as a :len() method.
| * util.dbuffer: Expose length as :len() method, like stringsKim Alvefur2020-10-122-0/+2
| | | | | | | | Ref #1598
* | mod_http_errors: Remove 'extra' element when emptyKim Alvefur2020-10-121-1/+1
| |
* | mod_http_errors: Dark theme!Kim Alvefur2020-10-121-0/+7
| |
* | mod_http_errors: Use a class on extra data sectionKim Alvefur2020-10-121-2/+2
| | | | | | | | This CSS selector makes it awkward to add more items.
* | util.startup: Handle missing nparams field from debug info (not present in 5.1)Matthew Wild2020-10-111-2/+3
| |
* | core.modulemanager: Fix error if installer path missingKim Alvefur2020-10-111-1/+1
| | | | | | | | | | Happens if run outside prosody. Noticed because because the storage tests fail.
* | util.startup: Include arguments in function string representationKim Alvefur2020-10-091-2/+8
| | | | | | | | | | | | | | Improves usability of the console when digging around the internals. No specific rationale for the function<file:line>(args) format, it looked best of the variants I tried.
* | util.startup: Retrieve less data for function string representationKim Alvefur2020-10-091-1/+1
| | | | | | | | debug.getinfo(f) collects more info than what is needed here.
* | core.moduleapi: Return resource path from module:get_directory() (API BC)Kim Alvefur2020-10-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | :get_directory has so far returned the base directory of the current module source code. This has worked well so far to load resources which tend to be included in the same directory, but with the plugin installer using LuaRocks, extra resources (e.g. templates and other assets) these are saved in a completely different directory. In be73df6765b9 core.modulemanager gained some code for finding that directory and saving it in module.resource_path but now the question is how this should be reflected in the API. A survey of community modules suggest the vast majority use the :get_directory method for locating templates and other assets, rather than the code (which would use module:require instead). Therefore this commit changes :get_directory to return the resource_path when available. This should work for most modules.
* | core.modulemanager: Add compat for LuaRocks 2.xKim Alvefur2020-10-071-0/+7
| |
* | core.moduleapi: Use resource path for :load_resource()Kim Alvefur2020-10-071-1/+1
| |
* | core.modulemanager: Locate resources of LuaRocks-installed modulesKim Alvefur2020-10-071-0/+31
| | | | | | | | | | | | | | Extra non-code files included with a `copy_directories` directive in a LuaRocks manifest will be copied into a per-module and per-version directory under /lib/luarocks/ and all this is there to dig that out so it can be used in e.g. moduleapi :load_resource().
* | util.startup: Save the path used by the installer to prosody.pathsKim Alvefur2020-10-071-0/+1
| | | | | | | | | | | | Makes it easier for other parts of the code to use this for things, such as determining whether a certain module is from this path or from elsewhere.
* | Merge 0.11->trunkKim Alvefur2020-10-071-2/+2
|\|
| * MUC: Preserve disco 'node' attribute (or lack thereof) in response (fix ↵Kim Alvefur2020-10-071-2/+2
| | | | | | | | #1595) (thanks lessthan3)
* | Merge 0.11->trunkKim Alvefur2020-10-051-2/+2
|\|
| * util.dependencies: Check for bitop library same way as net.websocket.frames ↵Kim Alvefur2020-10-051-1/+1
| | | | | | | | (fixes #1594)
| * MUC: Correct advertising of subject write access (really fixes #1155)Kim Alvefur2020-10-041-2/+2
| | | | | | | | | | | | | | | | | | | | Thanks pep. and lovetox XEP-0045 §6.4: > any field defined for the muc\#roomconfig FORM_TYPE can be included in > the extended service discovery fields Probably happened because the same mistake is in #1155
* | util.startup: Fix startup failure if CFG_DATADIR is unsetKim Alvefur2020-10-051-1/+1
| | | | | | | | As is normal when running from source
* | util.startup: Re-enable installer path setupKim Alvefur2020-10-051-2/+2
| |