aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* 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
* util.pubsub: Add support for publish_model config optionMatthew Wild2018-08-061-1/+14
|
* util.dataforms: Allow passing the current values to be used in stead of ↵Kim Alvefur2018-08-051-2/+4
| | | | omitted fields
* util.pubsub: Apply defaults metatable before config check (thanks pep.)Kim Alvefur2018-08-051-1/+3
| | | | | Makes it so that the callback sees the default if it?s not in the form, which makes it easier to validate.
* util.dataforms: Normalize indentationKim Alvefur2018-08-041-3/+3
|
* util.pubsub: Add method to retrieve node configurationMatthew Wild2018-08-041-0/+21
|
* util.pubsub: Use service.node_defaults in case config.node_defaults was not ↵Matthew Wild2018-08-041-1/+1
| | | | provided (thanks jonasw)
* util.pubsub: Tweak default affiliation of access models (fixes failing test)Matthew Wild2018-08-041-2/+2
| | | | | | | | | | | 11:56:59 MattJ> Someone who has the ability to subscribe does not have the "subscriber" affiliation until they actually subscribe, they just have the normal "none" affiliation (which has permission to subscribe) 11:58:05 MattJ> However if the access model is whitelist, then anyone not on the whitelist has an implicit negative affiliation, which we don't currently have, so I just named "restricted" 11:58:16 MattJ> Since it doesn't exist in any code yet, it has no permissions
* util.pubsub: Look for a configured callback for more complicated access modelsKim Alvefur2018-08-041-0/+10
|
* util.pubsub: Add initial support for configurable access modelsKim Alvefur2018-08-041-4/+17
|
* util.dataforms: Only allow overriding of options when passed via the :form ↵Kim Alvefur2018-08-031-9/+8
| | | | method
* util.dataforms: Allow overriding default options even if the form has suchKim Alvefur2018-08-031-1/+1
|
* util.dataforms: Allow passing dynamically generated options as values (fixes ↵Kim Alvefur2018-08-031-2/+9
| | | | | | | traceback) This is awkward but there?s currently no better way to do this, short of dynamically generating the entire form each time
* util.dataforms: Exclude descriptive text fields from forms of type 'submit'Kim Alvefur2018-08-031-9/+13
| | | | | The receiving end presumably already have the original form, so these potentially long text fields are of little value.
* util.dataforms: Skip all fields for the 'cancel' form typeKim Alvefur2018-08-031-0/+3
| | | | | | | | | | | XEP-0004 says: > a data form of type "cancel" SHOULD NOT contain any <field/> elements. The title and instructions don't seem to be of much value in this case either. I'm not aware of 'cancel' being used anywhere, so this should break nothing. Early return is always nice.
* util.dataforms: Only include options in 'form' type formsKim Alvefur2018-08-031-1/+1
| | | | Options should not be needed in other types of forms.
* util.dataforms: Set default value for form type argumentKim Alvefur2018-08-031-1/+2
|
* util.dataforms: Detach generation of options from values (fixes #1177)Kim Alvefur2018-08-031-30/+21
|
* util.pubsub: Add support for a config validation functionMatthew Wild2018-08-011-0/+7
|
* util.xmppstream: Explicitly release old parser object on stream resetMatthew Wild2018-07-311-1/+6
|
* util.serialization: Tighten up type checksKim Alvefur2018-07-291-2/+2
|
* util.vcard: Use the new :text_tag API in more placesKim Alvefur2018-07-261-8/+8
|
* util.vcard: Include values of 'properties' (eg PHOTO TYPE) in vcard-temp ↵Kim Alvefur2018-07-251-3/+5
| | | | serialization
* util.dataforms: Ensure fields have names when collecting data (fixes ↵Kim Alvefur2018-07-151-1/+1
| | | | traceback, thanks Martin)
* util.pubsub: Support for returning *all* subscriptionsKim Alvefur2018-07-131-21/+31
|
* util.xmppstream: Perfom validation of XML declaration parametersMatthew Wild2018-07-111-10/+13
|
* util.serialization: Rewritte for performance and flexibilityKim Alvefur2018-07-101-58/+238
| | | | ... and because rewrites are fun!
* Merge 0.10->trunkKim Alvefur2018-07-081-0/+10
|\
| * util.stanza: Add method for removing all children with a specific name, xmlnsKim Alvefur2018-07-081-0/+10
| |
* | util.{async,timer}: Move sleep() to reduce dependencies of util.timerKim Alvefur2018-07-082-8/+8
| |
* | util.dataforms: More robust handling of field values, especially booleansMatthew Wild2018-07-071-2/+7
| | | | | | | | | | Ensure that a non-nil data[field_name] always overrides the field's default, and that values of boolean 'false' are always rendered in the form.