aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* util.pubsub: Allow publishing with a config that should be used as defaults onlyMatthew Wild2018-10-181-4/+7
|
* util.promise: Add a string representationKim Alvefur2018-10-181-0/+4
|
* util.promise: Add promise:finally()Matthew Wild2018-10-181-0/+6
|
* util.promise: Some code relocationMatthew Wild2018-10-181-23/+23
|
* util.promise: Also support automatic resolution by returning a promise from ↵Matthew Wild2018-10-181-1/+3
| | | | | | | an on_reject handler Originally unimplemented because it wasn't clear to me what the correct behaviour was, but the A+ spec is clear that both onFulfilled and onRejected may return a promise.
* util.promise: Fix promise.reject() to return a rejected promise, and fix ↵Matthew Wild2018-10-181-1/+1
| | | | buggy test for it
* mod_http: Move normalize_path to util.httpKim Alvefur2018-10-141-0/+11
|
* util.dependencies: Add compat code for normalization of socket constructorsKim Alvefur2018-10-121-0/+4
| | | | | | Old LuaSocket had only tcp() which was IPv4-only. LuaSocket ~3.0 adds a tcp6() that creates a IPv6 socket. Some version moves tcp() to tcp4() and adds an IP-version-agnostic tcp() constructor.
* util.stanza: Set preserialize as freeze metamethodKim Alvefur2018-10-121-0/+2
|
* util.set: Add freeze metamethodKim Alvefur2018-10-121-0/+8
|
* util.array: Add freeze metamethodKim Alvefur2018-10-121-0/+2
|
* util.serialization: Remove encoding of very large or very small numbers in ↵Kim Alvefur2018-10-121-12/+1
| | | | | | | | scientific notation Also difficult to describe this option, easier to remove it. %.18g covers a very large range of numbers
* util.serialization: Simpler metatable pre-processingKim Alvefur2018-10-121-14/+12
| | | | It was too difficult to describe what it did.
* util.serialization: Use '=' prefix for chunk source descriptionKim Alvefur2018-10-111-1/+1
| | | | Like in bd5e4485a245
* util.serialization: Make check of prefix for optional hex encoding stricterKim Alvefur2018-10-111-1/+1
|
* util.serialization: Make errors fatal by default (like the previous ↵Kim Alvefur2018-10-111-1/+1
| | | | implementation)
* util.promise: ES6-like API for promisesMatthew Wild2018-10-101-0/+133
|
* util.serialization: Stricter type checkKim Alvefur2018-09-231-1/+1
|
* util.json: Use util.iterators.sorted_pairs() in ordered modeMatthew Wild2018-09-211-21/+8
|
* util.iterators: Add sorted_pairs() methodMatthew Wild2018-09-211-0/+13
|
* util.jid: Add missing semicolonKim Alvefur2018-09-211-1/+1
|
* util.stanza: Don't automatically generate ids for iq stanzasMatthew Wild2018-09-131-9/+4
| | | | | | | | | | Users of this API should provide their own id attribute that meets their uniqueness requirements. The current implementation leaks information (i.e. how many iq stanzas have been sent by the server to other JIDs). Providing any strong guarantees of randomness here would need to pull in additional dependencies that we don't want in this simple library.
* util.dataforms: Improve default error message for failed datatype validationKim Alvefur2018-09-031-1/+1
|
* util.dataforms: Add support for XEP-0122: Data Forms ValidationKim Alvefur2018-09-011-1/+36
| | | | Initially only basic validation of xs:integer
* util.dataforms: Allow field names to be different from the 'var' attributeKim Alvefur2018-09-011-2/+2
| | | | | | This should allow the usage of long prefixes and namespace-like names to be contained to the XML representation of the form, so that the code can use more convenient names.
* util.pubsub: Expand comment on return type from get_itemsKim Alvefur2018-09-011-1/+1
|
* util.pubsub: Explicitly add all capabilities to the 'outcast' affiliation ↵Kim Alvefur2018-08-311-0/+16
| | | | for completeness
* util.pubsub: Comments describing the return values of methodsKim Alvefur2018-08-221-19/+19
|
* util.pubsub: Add 'service' field to all eventsMatthew Wild2018-08-271-7/+7
|
* util.pubsub: Remove unused argumentKim Alvefur2018-08-211-1/+1
| | | | I think this was probably a copy-paste mistake.
* util.pubsub: Fire item-published/<node> to allow for easier handling of ↵Matthew Wild2018-08-191-1/+3
| | | | per-node items
* util.stanza + tests: Bail out of loop if we are iterating too far, fixes #981Matthew Wild2018-08-191-0/+6
|
* util.startup: Set flag when config fully loadedMatthew Wild2018-08-191-0/+1
|
* util.pubsub, pubsub.lib: Improve error on attempt to publish invalid itemMatthew Wild2018-08-181-1/+1
|
* Pubsub: Add tests for :get_last_item() and fix for non-persistent nodesMatthew Wild2018-08-181-1/+1
|
* util.pubsub: Fix whitespace [luacheck]Matthew Wild2018-08-181-1/+1
|
* Backed out changeset 27d800ddc3b0 (see below)Matthew Wild2018-08-181-2/+2
| | | | | | | | | It's uncertain whether item not existing should be success and nil, or fail with an error. XEP-0060's "fetch most recent item" actually fetches a list of up to N items. N here is a maximum, not a minimum. The feeling is that no items is simply an empty list, not a failure of the operation.
* util.pubsub: get_last_item(): Fail with item-not-found if no item yet publishedMatthew Wild2018-08-181-2/+2
|
* util.pubsub: get_last_item(): Return error if node does not existMatthew Wild2018-08-181-0/+6
|
* pubsub.lib, util.pubsub: Move precondition checks to util.pubsubMatthew Wild2018-08-181-2/+17
|
* util.pubsub: Add comment to clarify return valuesMatthew Wild2018-08-181-0/+1
|
* util.pubsub: Pass "retract" as the type of such broadcastsKim Alvefur2018-08-161-1/+1
| | | | | | | | This moves some XEP-0060 awkwardness out of util.pubsub and into mod_pubsub A retraction is broadcast in an <items> container, whereas most other kinds of broadcasts are in a container with a name matching the 'kind' attribute.
* util.async: Remove sleep functionKim Alvefur2018-08-121-8/+0
| | | | | Dependency on util.timer indirectly caused net.server to be initialized before the config was read, so server_select was always chosen.
* util.pubsub: Allow outcasts to get their subscription statusMatthew Wild2018-08-121-0/+2
|
* util.time: Convert to CKim Alvefur2017-03-091-8/+0
|
* util.pubsub: For open nodes, default affiliation is "member"Matthew Wild2018-08-091-1/+1
| | | | | | | | | This allows entities without an explicit affiliation to retrieve items, which is specified by the XEP. Table 6: "Node Access Models" states that for 'open' nodes, "any entity may retrieve items from the node". See also discussion at: https://mail.jabber.org/pipermail/standards/2018-August/035320.html
* mod_pep, util.pubsub: Rename restricted->outcast, none->member and add new ↵Matthew Wild2018-08-081-2/+24
| | | | 'none' affiliation to better match XEP-0060
* mod_pubsub, mod_pep, util.pubsub: Move capability definitions into ↵Matthew Wild2018-08-081-1/+77
| | | | util.pubsub to avoid duplication
* util.pubsub: Include node defaults from current service objectKim Alvefur2018-08-071-0/+3
|
* util.pubsub: Re-check all subscriptions on access_model change, ↵Kim Alvefur2018-08-061-0/+12
| | | | unsubscribing those no longer allowed