Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | util.serialization: Make errors fatal by default (like the previous ↵ | Kim Alvefur | 2018-10-11 | 1 | -1/+1 | |
| | | | | implementation) | |||||
* | util.promise: ES6-like API for promises | Matthew Wild | 2018-10-10 | 1 | -0/+133 | |
| | ||||||
* | util.serialization: Stricter type check | Kim Alvefur | 2018-09-23 | 1 | -1/+1 | |
| | ||||||
* | util.json: Use util.iterators.sorted_pairs() in ordered mode | Matthew Wild | 2018-09-21 | 1 | -21/+8 | |
| | ||||||
* | util.iterators: Add sorted_pairs() method | Matthew Wild | 2018-09-21 | 1 | -0/+13 | |
| | ||||||
* | util.jid: Add missing semicolon | Kim Alvefur | 2018-09-21 | 1 | -1/+1 | |
| | ||||||
* | util.stanza: Don't automatically generate ids for iq stanzas | Matthew Wild | 2018-09-13 | 1 | -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 validation | Kim Alvefur | 2018-09-03 | 1 | -1/+1 | |
| | ||||||
* | util.dataforms: Add support for XEP-0122: Data Forms Validation | Kim Alvefur | 2018-09-01 | 1 | -1/+36 | |
| | | | | Initially only basic validation of xs:integer | |||||
* | util.dataforms: Allow field names to be different from the 'var' attribute | Kim Alvefur | 2018-09-01 | 1 | -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_items | Kim Alvefur | 2018-09-01 | 1 | -1/+1 | |
| | ||||||
* | util.pubsub: Explicitly add all capabilities to the 'outcast' affiliation ↵ | Kim Alvefur | 2018-08-31 | 1 | -0/+16 | |
| | | | | for completeness | |||||
* | util.pubsub: Comments describing the return values of methods | Kim Alvefur | 2018-08-22 | 1 | -19/+19 | |
| | ||||||
* | util.pubsub: Add 'service' field to all events | Matthew Wild | 2018-08-27 | 1 | -7/+7 | |
| | ||||||
* | util.pubsub: Remove unused argument | Kim Alvefur | 2018-08-21 | 1 | -1/+1 | |
| | | | | I think this was probably a copy-paste mistake. | |||||
* | util.pubsub: Fire item-published/<node> to allow for easier handling of ↵ | Matthew Wild | 2018-08-19 | 1 | -1/+3 | |
| | | | | per-node items | |||||
* | util.stanza + tests: Bail out of loop if we are iterating too far, fixes #981 | Matthew Wild | 2018-08-19 | 1 | -0/+6 | |
| | ||||||
* | util.startup: Set flag when config fully loaded | Matthew Wild | 2018-08-19 | 1 | -0/+1 | |
| | ||||||
* | util.pubsub, pubsub.lib: Improve error on attempt to publish invalid item | Matthew Wild | 2018-08-18 | 1 | -1/+1 | |
| | ||||||
* | Pubsub: Add tests for :get_last_item() and fix for non-persistent nodes | Matthew Wild | 2018-08-18 | 1 | -1/+1 | |
| | ||||||
* | util.pubsub: Fix whitespace [luacheck] | Matthew Wild | 2018-08-18 | 1 | -1/+1 | |
| | ||||||
* | Backed out changeset 27d800ddc3b0 (see below) | Matthew Wild | 2018-08-18 | 1 | -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 published | Matthew Wild | 2018-08-18 | 1 | -2/+2 | |
| | ||||||
* | util.pubsub: get_last_item(): Return error if node does not exist | Matthew Wild | 2018-08-18 | 1 | -0/+6 | |
| | ||||||
* | pubsub.lib, util.pubsub: Move precondition checks to util.pubsub | Matthew Wild | 2018-08-18 | 1 | -2/+17 | |
| | ||||||
* | util.pubsub: Add comment to clarify return values | Matthew Wild | 2018-08-18 | 1 | -0/+1 | |
| | ||||||
* | util.pubsub: Pass "retract" as the type of such broadcasts | Kim Alvefur | 2018-08-16 | 1 | -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 function | Kim Alvefur | 2018-08-12 | 1 | -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 status | Matthew Wild | 2018-08-12 | 1 | -0/+2 | |
| | ||||||
* | util.time: Convert to C | Kim Alvefur | 2017-03-09 | 1 | -8/+0 | |
| | ||||||
* | util.pubsub: For open nodes, default affiliation is "member" | Matthew Wild | 2018-08-09 | 1 | -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 Wild | 2018-08-08 | 1 | -2/+24 | |
| | | | | 'none' affiliation to better match XEP-0060 | |||||
* | mod_pubsub, mod_pep, util.pubsub: Move capability definitions into ↵ | Matthew Wild | 2018-08-08 | 1 | -1/+77 | |
| | | | | util.pubsub to avoid duplication | |||||
* | util.pubsub: Include node defaults from current service object | Kim Alvefur | 2018-08-07 | 1 | -0/+3 | |
| | ||||||
* | util.pubsub: Re-check all subscriptions on access_model change, ↵ | Kim Alvefur | 2018-08-06 | 1 | -0/+12 | |
| | | | | unsubscribing those no longer allowed | |||||
* | util.pubsub: Add support for publish_model config option | Matthew Wild | 2018-08-06 | 1 | -1/+14 | |
| | ||||||
* | util.dataforms: Allow passing the current values to be used in stead of ↵ | Kim Alvefur | 2018-08-05 | 1 | -2/+4 | |
| | | | | omitted fields | |||||
* | util.pubsub: Apply defaults metatable before config check (thanks pep.) | Kim Alvefur | 2018-08-05 | 1 | -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 indentation | Kim Alvefur | 2018-08-04 | 1 | -3/+3 | |
| | ||||||
* | util.pubsub: Add method to retrieve node configuration | Matthew Wild | 2018-08-04 | 1 | -0/+21 | |
| | ||||||
* | util.pubsub: Use service.node_defaults in case config.node_defaults was not ↵ | Matthew Wild | 2018-08-04 | 1 | -1/+1 | |
| | | | | provided (thanks jonasw) | |||||
* | util.pubsub: Tweak default affiliation of access models (fixes failing test) | Matthew Wild | 2018-08-04 | 1 | -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 models | Kim Alvefur | 2018-08-04 | 1 | -0/+10 | |
| | ||||||
* | util.pubsub: Add initial support for configurable access models | Kim Alvefur | 2018-08-04 | 1 | -4/+17 | |
| | ||||||
* | util.dataforms: Only allow overriding of options when passed via the :form ↵ | Kim Alvefur | 2018-08-03 | 1 | -9/+8 | |
| | | | | method | |||||
* | util.dataforms: Allow overriding default options even if the form has such | Kim Alvefur | 2018-08-03 | 1 | -1/+1 | |
| | ||||||
* | util.dataforms: Allow passing dynamically generated options as values (fixes ↵ | Kim Alvefur | 2018-08-03 | 1 | -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 Alvefur | 2018-08-03 | 1 | -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 type | Kim Alvefur | 2018-08-03 | 1 | -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 forms | Kim Alvefur | 2018-08-03 | 1 | -1/+1 | |
| | | | | Options should not be needed in other types of forms. |