aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | util.datamapper: Factor out common schema unpackingKim Alvefur2021-03-142-163/+110
| | | | | | | | | | This code extracts the bits from the schema that determines how the data is to be mapped to/from XML.
* | util.datamapper: Separate extraction of xml from coercion to target typeKim Alvefur2021-03-142-68/+56
| | | | | | | | | | | | Now it gets the text, attribute or name first, then turns it into whatever the schema wants. This should be easier to further factor out into preparation for array support.
* | util.datamapper: Use enum instead of mutually exclusive booleansKim Alvefur2021-03-142-40/+47
| | | | | | | | Cleaner and rules out invalid combinations.
* | util.datamapper: Enumerated elementsKim Alvefur2021-03-123-3/+49
| | | | | | | | E.g. error conditions or chat states.
* | util.datamapper: Some TODOsKim Alvefur2021-03-101-0/+4
| |
* | util.datamapper: Add references with notesKim Alvefur2021-03-102-0/+17
| |
* | util.datamapper: Add Copyright headerKim Alvefur2021-03-101-0/+6
| |
* | util.jsonschema: Add copyright-headerKim Alvefur2021-03-101-0/+9
| |
* | util.jsonschema: Restructure "type" keyword handlingKim Alvefur2021-03-092-18/+20
| | | | | | | | More in line with the other tests
* | util.jsonschema: Syntax tweak to not upset syntax highlightingKim Alvefur2021-03-092-4/+4
| | | | | | | | | | That whole condition stanza was shown as angry red, I think it's something with 'enum' being a key word in Teal.
* | util.jsonschema: Implement "propertyNames"Kim Alvefur2021-03-092-0/+13
| | | | | | | | This is a bit special in Lua as tables are not limited to string keys
* | 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.