aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* util.jsonschema: Restructure handling of "properties" and "additionalProperties"Kim Alvefur2021-03-092-44/+16
| | | | This is a bit cleaner, I think
* util.jsonschema: Fix "uniqueItems" prematurely declaring a matchKim Alvefur2021-03-092-2/+0
|
* util.jsonschema: Implement the "prefixItems" keywordKim Alvefur2021-03-092-2/+25
| | | | This may have been what got me confused about "items" being an array.
* util.jsonschema: Implement the "contains" keywordKim Alvefur2021-03-092-1/+27
| | | | And apparently I had mistaken this for an array
* util.jsonschema: Allow a boolean as schemaKim Alvefur2021-03-092-1/+7
| | | | | | Apparently a schema must be either an object or a boolean. Not sure where I got this string shortcut from, but I think I will keep it as it is very convenient.
* util.jsonschema: Correct "items" keywordKim Alvefur2021-03-092-25/+9
| | | | | | Upon re-reading the JSON Schema spec, I found that 'items' wasn't a union of an array of schemas or a single schema, not sure where I got that from.
* util.datamapper: Add support for mapping of elements where only one ↵Kim Alvefur2021-03-074-0/+76
| | | | | | | attribute matters E.g. <feature var='foo'/> in XEP-0030 and some other simple specifications.
* util.datamapper: Add logic for "boolean" tags here the presence means trueKim Alvefur2021-03-073-6/+24
|
* util.datamapper: Invent extension for using tag name as valueKim Alvefur2021-03-064-9/+42
| | | | | Useful for certain enum-like uses where the element name is the relevant information, e.g. chat states.
* util.datamapper: Add 'unparse' for turning tables into XMLKim Alvefur2021-03-073-2/+216
|
* util.datamapper: Library for extracting data from stanzasKim Alvefur2021-03-074-0/+255
| | | | Based on the XML support in the OpenAPI specification.
* util.jsonschema: Library for JSON Schema validationKim Alvefur2021-03-063-0/+575
|
* make: Add target for building Teal sourcesKim Alvefur2021-03-091-0/+4
| | | | | Compiled Lua targets included in parallel in order to not add a hard dependency on Teal, at least not yet.
* util: Add Teal interface definition filesKim Alvefur2021-03-0924-0/+489
| | | | | | | | Enables writing code in Teal that is aware of the interfaces and function prototypes in these other utils. Could also be used to do type checks on Lua sources, but this tends to have a lot of noise.
* util.gc: Fix check for Lua 5.4Kim Alvefur2021-03-161-1/+1
|
* net.resolvers.basic: Fix completion condition when IPv6 is disabledKim Alvefur2021-03-151-0/+2
| | | | | | | | | | Fixes mistake introduced in 5a71f14ab77c that made it so this ready() newer got called and thus it would be stuck waiting for it. Looks like the kind of thing that could have been introduced by a merge or rebase. Thanks MattJ
* mod_pubsub: Include <pubsub> with unsubscribe replyKim Alvefur2021-03-152-2/+12
| | | | | | | | | XEP-0060 6.2.2 This is a MAY but it makes it nice and symmetric with the subscription response. Reduces the need to remember which node you unsubscribed from. Explicit > implicit etc.
* util.rsm: Correctly coerce integer value for <index> (fix #1642)Kim Alvefur2021-03-061-0/+3
|
* util.rsm: Increase test coverageKim Alvefur2021-03-061-0/+43
| | | | Test all fields in both directions in order to catch #1642
* util.rsm: Improve readability using compacter stanza building APIKim Alvefur2021-03-061-5/+5
| | | | At least I think :text_tag improves readability.
* mod_csi_simple: s/algoritm/algorithm/ [codespell]Kim Alvefur2021-03-051-1/+1
|
* core.storagemanager: s/Multilpe/Multiple/ [codespell]Kim Alvefur2021-03-051-1/+1
|
* util.prosodyctl.shell: Allow passing a single command as argumentKim Alvefur2021-03-051-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | Test procedure: $ prosodyctl shell 'server:version()' Expect: > OK: hg:926d53af9a7a $ prosodyctl shell 'server:version()' 'hello' Expect: > Only one command is supported as argument $ prosodyctl shell 'lorem ipsum'; echo $? Expect: > Sorry, I couldn't understand that... console:1: syntax error near 'show' > 1 (error code) Thanks Menel for mentioning the feature
* util.prosodyctl.shell: Fix check for --quietKim Alvefur2021-03-051-1/+1
| | | | | | | | | | | | | Looked in the wrong table Test procedure: $ prosodyctl shell --quiet Expect: Prosody> (No banner)
* net.resolvers.basic: Disable DANE for now, completely brokenKim Alvefur2021-03-032-6/+4
| | | | | Turns out 'extra' is, at least for mod_s2s, the same table for *all* connections.
* net.resolvers.basic: Don't enable DANE with zero TLSA recordsKim Alvefur2021-03-031-1/+1
| | | | Turns out it doesn't work with zero.
* mod_s2s: Buffer stream error + stream closing tagKim Alvefur2021-03-031-1/+4
| | | | | In "opportunistic writes" mode, prevents ondisconnect from happening while writing the stream closing tag.
* core.s2smanager: Set "direction" on destroyed sessions (fixes #1641)Kim Alvefur2021-03-031-0/+1
| | | | | | | | Should prevent errors in certain places where it logs session.direction captialized using gsub. Might cause bugs tho, but then the session is destroyed so maybe it doesn't matter?
* mod_s2s: Check direction in bidi-aware styleKim Alvefur2021-03-031-1/+1
| | | | | | Both session.incoming and session.outgoing are truthy here, but session.direction indicates the "real" direction in the way that matters for the order of events when opening or closing streams.
* doap: Add RFC 7673Kim Alvefur2021-03-021-0/+1
| | | | Supported in the DNS layer, this isn't RFC about how to use it in XMPP.
* mod_s2s: Add config setting to enable DANEKim Alvefur2021-03-021-0/+1
|
* net.connect: Add DANE supportKim Alvefur2021-03-022-1/+27
| | | | | | Disabled DANE by default, since it needs extra steps to be useful. The built-in DNS stub resolver does not support DNSSEC so having DANE enabled by default only leads to an extra wasted DNS request.
* net.server_epoll: Support for passing DANE TLSA data to LuaSec (0.8 needed)Kim Alvefur2019-09-291-0/+14
|
* core.portmanager: Log SNI hosts, services looked forKim Alvefur2021-03-021-0/+1
| | | | To highlight how many these are
* MUC: Add robot face testKim Alvefur2021-03-021-0/+46
| | | | See 6e051bfca12d
* mod_http: Consolidate handling of proxied connection detailsKim Alvefur2021-02-271-9/+9
| | | | | Trying to move everything relating to proxies and X-Forwarded-Foo into a single place.
* net.http.server: Set request.ip so mod_http doesn't have toKim Alvefur2021-02-272-1/+3
| | | | | | | | Because it already sets request.secure, which depends on the connection, just like the IP, so it makes sense to do both in the same place. Dealing with proxies can be left to mod_http for now, but maybe it could move into some util some day?
* Merge 0.11->trunkKim Alvefur2021-02-271-3/+3
|\
| * mod_http: Restore ip field for requests without proxiesKim Alvefur2021-02-271-2/+2
| | | | | | | | | | 8603011e51fe optimized out more than just the loop, leaving the .ip field blank when the request wasn't from a proxy.
* | mod_http_file_share: Skip removal of nothingKim Alvefur2021-02-261-5/+9
| | | | | | | | | | In case none of the expired files could be deleted then it's a waste of an API call to try to remove any of the metadata at all.
* | mod_http_file_share: Remove correct entries when not all expired files were ↵Kim Alvefur2021-02-251-10/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | deleted If any of the expired files could not be deleted then we should not forget about that, we should complain loudly and try again. The code got this backwards and would have removed only the entries referring to still existing files. Test procedure: 1. Upload a file 2. chown root:root http_file_share/ 3. In uploads.list, decrease 'when' enough to ensure expiry 4. Reload mod_http_file_share 5. Should see an error in the logs about failure to delete the file 6. Should see that the metadata in uploads.list is still there 7. chown http_file_share/ back to the previous owner 8. Reload mod_http_file_share 9. Should see logs about successful removal of expired file 10. Should see that the metadata in uploads.list is gone 11. Should see that the file was deleted
* | mod_http_errors: Add some commentsKim Alvefur2021-02-251-0/+3
| |
* | mod_http_errors: Add some silly variations for the '/' pageKim Alvefur2021-02-251-1/+11
| | | | | | | | | | | | | | | | | | > "You can do anything in XMPP!" > as a reminiscence of zombo.com -- jonas’ > A study in simplicity. Prosody tagline
* | mod_http_file_share: Fix traceback on missing file-typeKim Alvefur2021-02-241-1/+4
| | | | | | | | attempt to index a nil value (local 'filetype') casued by the :gsub call
* | mod_csi_simple: Add command to test importance algorithm on stream of stanzasKim Alvefur2021-02-231-0/+32
| | | | | | | | This won't include behavior provided by extra modules tho.
* | mod_http: Improve message for missing 'route'Kim Alvefur2021-02-231-1/+1
| | | | | | | | | | This was the late night early draft text, thought I had amended this but apparently I forgot.
* | mod_http: Warn if app is missing 'route'Kim Alvefur2021-02-211-1/+7
| | | | | | | | | | | | | | | | | | | | Makes no sense to have a http module with no handlers Would have helped me when I accidentally module:provides("http", { GET = handler; })
* | mod_http_file_share: Allow credentials via CORS (needed for auth token)Kim Alvefur2021-02-231-0/+3
| |
* | mod_http: Allow modifying CORS header list via :provides APIKim Alvefur2019-12-301-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E.g. module:provides("http", { cors = { headers = { Accept = true; Expect = false; }; }; route = { ... }; }); Case might be weird.
* | mod_http: Allow setting the CORS credentials flag via :provides APIKim Alvefur2019-12-301-1/+9
| | | | | | | | | | | | | | | | | | | | | | E.g. module:provides("http", { cors = { credentials = true; }; route = { ... }; });