aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
Commit message (Collapse)AuthorAgeFilesLines
* mod_mam: Remove unused variables [luacheck]Kim Alvefur2020-04-231-4/+0
| | | | Logic using full vs bare JID addressing may return in the future.
* mod_mam: Don't store any groupchat messagesKim Alvefur2020-04-231-1/+3
| | | | | | | | The intent was to not store MUC groupchat messages, which are sent from the MUC to local full JIDs, while allowing for potential future account based group chat. However, since this function handles messages in both directions and outgoing MUC messages are sent to the bare room JID, those were stored.
* mod_lastactivity: Encode seconds as decimal, not floatKim Alvefur2020-04-221-1/+1
| | | | | | | | In Lua 5.3 difftime() takes integers as argument but returns a float, and then tostring() serializes it with a decimal point. This violates XEP-0012. Like #1536
* mod_uptime: Encode uptime as decimal, fix #1536 (thanks Martin)Kim Alvefur2020-04-221-1/+1
|
* mod_mam: Make note of Experimental (or Deferred) XEPsKim Alvefur2020-04-221-0/+3
| | | | | Since these XEPs are subject to change we may need come back and double check these in the future.
* mod_mam: Save delivery failures (thanks Ge0rG)Kim Alvefur2020-04-221-0/+3
| | | | | Makes it possible to learn of delivery failure even if it came bouncing back while you were offline.
* mod_mam: Keep chat markers (thanks Ge0rG)Kim Alvefur2020-04-221-0/+3
|
* mod_mam: Respect no-store hint (thanks Ge0rG)Kim Alvefur2020-04-221-1/+2
| | | | | no-store is used in an example in XEP-0313, so obviously this is the preferred hint
* mod_mam: Fix typo in commentKim Alvefur2020-04-211-1/+1
| | | | If it is with a body then it execution does not get this far
* mod_mam: Prefer not archiving if no interesting payloads are foundKim Alvefur2020-04-211-1/+3
|
* mod_mam: Check sender of error instead of receiverKim Alvefur2020-04-211-0/+3
| | | | | | The intent is to capture errors to stanzas sent by the local user, so that they can see why a message failed to be delivered even if the error came after they went offline.
* mod_mam: Store XEP-0184 receipts and requestsKim Alvefur2020-04-211-0/+5
| | | | Happy now Ge0rG?
* mod_mam: Add more positive hints for storageKim Alvefur2020-04-211-0/+12
| | | | Mostly just lifted from mod_csi_simple
* mod_mam: Rework hints handlingKim Alvefur2020-04-211-7/+6
| | | | Improved readability and early returns definite yes/no answer.
* mod_mam: Invert check for typeKim Alvefur2020-04-211-5/+13
| | | | | This is based on code in mod_csi_simple and aiming towards being more flexible and maintainable than a couple of tests for when not to store.
* mod_mam: Log 'why' a stanza is archivedKim Alvefur2020-04-211-1/+1
| | | | | Logging of 'why not' is already done. Why not both? Will make more sense when the rules evolve a bit.
* mod_mam: Factor out "should we store this" into a functionKim Alvefur2020-04-211-13/+21
| | | | | Meant to improve readability and ease further improvements to this algorithm.
* mod_csi_simple: Consider MUC invites importantKim Alvefur2020-04-181-0/+3
| | | | | Both mediated invites defined by XEP-0045: Multi-User Chat and direct invites defined by XEP-0249: Direct MUC Invitations
* mod_bosh, mod_websocket: Add config options to override GET responsesMatthew Wild2020-04-202-7/+13
|
* mod_c2s: Swap commentsKim Alvefur2020-04-191-2/+2
|
* mod_csi_simple: Allow configuring extra tags indicating importanceKim Alvefur2020-04-181-1/+8
|
* mod_scansion_record: Indent stanzas in recordingsKim Alvefur2020-04-121-2/+1
| | | | Improves readability, easier to see structure.
* mod_component: Specify an error source for Component unavailable errorsKim Alvefur2020-04-111-1/+1
| | | | | | | | It is somewhat ambiguous where an error really comes from in the case of an external component. Setting by to the bare host at least distinguishes it from JIDs with a node- or resourcepart.
* MUC: Switch hats to new presence APIsMatthew Wild2020-04-111-3/+4
|
* MUC: Add API for adding 'filtered namespaces' to be stripped from inbound ↵Matthew Wild2020-04-111-7/+11
| | | | presence
* MUC: Add new event 'muc-build-occupant-presence' for plugins to extend ↵Matthew Wild2020-04-111-0/+2
| | | | occupant presence
* Merge 0.11->trunkKim Alvefur2020-04-031-2/+2
|\
| * mod_vcard4: Report correct error condition (fixes #1521)Kim Alvefur2020-04-031-2/+2
| | | | | | | | On error, the second return value is the error condition, not the third.
| * mod_register_ibr: Add FORM_TYPE as required by XEP-0077 (fixes #1511)Emmanuel Gil Peyrot2019-09-291-0/+2
| | | | | | | | Backport of f90abf142d53 from trunk
* | Merge 0.11->trunkKim Alvefur2020-03-222-5/+9
|\|
| * mod_storage_sql: Add index covering sort_id to improve performance (fixes #1505)Kim Alvefur2020-03-221-0/+1
| |
| * mod_admin_telnet: Handle unavailable cipher info (fixes #1510)Kim Alvefur2020-03-221-5/+8
| | | | | | | | | | | | | | | | The LuaSec :info() method gathers info using the OpenSSL function SSL_get_current_cipher(). Documentation for this function states that it may return NULL if no session has been established (yet). If so, the LuaSec functions wrapping this return nil, triggering a nil-indexing error in mod_admin_telnet.
| * MUC: Persist affiliation_data in new MUC format!Matthew Wild2020-03-121-0/+1
| |
* | MUC: Add ad-hoc command setting affiliation in a room (fixes #1174)Kim Alvefur2020-03-211-0/+43
| | | | | | | | | | | | | | | | | | | | This gives service admins a way to set an arbitrary affiliation in any room. Enables various administrative use cases such as room ownership reassignment or recovery. Reduces the need for the admins-as-owners feature, as this can be used by admins to make themselves owner in any room when needed, instead of being owners all the time.
* | mod_presence: Advertise support for Subscription Pre-ApprovalKim Alvefur2020-03-191-0/+8
| | | | | | | | | | | | | | | | RFC 6121 §3.4 says: > If a server supports subscription pre-approvals, then it MUST > advertise the following stream feature during stream negotiation. The feature itself (#686) was added in f0e9e5bda415
* | MUC: Add initial hats support (broadcast only)Matthew Wild2020-03-182-0/+24
| | | | | | | | | | | | | | | | Based on the currently-deferred XEP-0317. The protocol differs a little (because XEP-0317 is incomplete), therefore currently we use a custom namespace. The plan is to update and finish XEP-0317.
* | MUC: Persist affiliation_data in new MUC format!Matthew Wild2020-03-121-0/+1
| |
* | MUC: Switch to new storage format by defaultMatthew Wild2020-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Changing the default setting of `new_muc_storage_format` from false to true. The code supports reading both formats since 0.11, but servers with MUCs stored using the new format will not be able to downgrade to 0.10 or earlier. The new format is clearer (less nesting for the most commonly-accessed data), and combined with the new map-store methods, allows for some operations to become more efficient (such as finding out which MUCs on a service a given user is affiliated with).
* | MUC: Support for broadcasting unavailable presence for affiliated offline usersMatthew Wild2020-03-122-3/+24
| | | | | | | | Activated when muc#roomconfig_presencebroadcast includes the "none" role.
* | MUC: Pass previous role to :publicise_occupant_status() when destroying a MUCMatthew Wild2020-03-121-3/+4
| |
* | MUC: Don't unconditionally broadcast presence with role="none"Matthew Wild2020-03-121-4/+0
| | | | | | | | | | | | Detailed explanation in de607875d4bd. A presence with role="none" (which is always type="unavailable") should only be broadcast if available presence was previously broadcast for that occupant.
* | MUC: Pass previous role to :publicise_occupant_status() whenever possibleMatthew Wild2020-03-121-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently there is what amounts to a hack in presence_broadcast.lib.lua to make it always broadcast presence with roles of "none". This is to ensure that if you previously saw available presence for someone, you will also see the unavailable presence (which always has role="none"). The correct approach is to take into account what the previous role was ( i.e. answer the question: "Was the available presence for this occupant a role for which presence broadcast is enabled?). The logic is already in place to do this correctly, but most call sites do not provide the previous role (prev_role argument) of the occupant, which causes it to not be used. In its place the hack to always broadcast presence of role="none" has allowed things to continue to work. The intention is that a subsequent commit will remove the unconditional broadcast of role="none".
* | Merge 0.11->trunkKim Alvefur2020-03-112-2/+10
|\|
| * mod_mam,mod_muc_mam: Allow other work to be performed during archive cleanup ↵Kim Alvefur2020-03-112-2/+10
| | | | | | | | | | | | | | | | | | | | | | (fixes #1504) This lets Prosody handle socket related work between each step in the cleanup in order to prevent the server from being completely blocked during this. An async storage backend would not need this but those are currently rare.
* | storagemanager, mod_storage_sql: Rename methods to :get_all() and :delete_all()Matthew Wild2020-03-111-4/+4
| |
* | mod_storage_sql: Add map_store:find_key() and map_store:delete_key() (+ tests)Matthew Wild2020-03-111-0/+44
| |
* | mod_tokenauth: Track creation time of tokensMatthew Wild2020-02-281-0/+1
| |
* | mod_tokenauth: Handle tokens issued to bare hosts (eg components)Kim Alvefur2020-02-281-1/+1
| |
* | Merge 0.11->trunkKim Alvefur2020-02-272-2/+2
|\|
| * mod_pubsub, mod_pep: Ensure correct number of children of <item/> (fixes #1496)Kim Alvefur2020-02-272-2/+2
| |