aboutsummaryrefslogtreecommitdiff
path: root/src/mod_client_state.erl (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Update newest copyright year to 2021 (#3464)Badlop2021-01-271-1/+1
|
* Use include_lib() to include headers from dependencies (#3369)Stu Tomlinson2020-09-031-1/+1
|
* Update copyright to 2020 (#3149)Badlop2020-01-281-1/+1
|
* Generate ejabberd.yml.5 man page from source code directlyEvgeny Khramtsov2020-01-081-0/+34
| | | | | | | Several documentation callbacks (doc/0 and mod_doc/0) are implemented and `ejabberdctl man` command is added to generate a man page. Note that the command requires a2x to be installed (which is a part of asciidoc package).
* Correctly handle unicode in log messagesEvgeny Khramtsov2019-09-231-6/+6
|
* Avoid using broad map() type wherever possibleEvgeny Khramtsov2019-06-271-1/+1
|
* Use new configuration validatorEvgeny Khramtsov2019-06-141-13/+13
|
* Replace code using p1_time_compat wrapper with native functionsPaweł Chmielowski2019-02-271-1/+1
| | | | | | | Since we now require R19, we shouldn't need that anymore. There are still couple places where p1_time_compat:unique_timestamp() is used as there is no direct equivalent.
* Update copyright to 2019 (#2756)Badlop2019-01-081-1/+1
|
* Move some functions from xmpp back into ejabberdHolger Weiss2018-10-251-2/+2
|
* Get rid of ejabberd.hrl headerEvgeniy Khramtsov2018-06-141-1/+0
| | | | | | | | | The header consisted of too many unrelated stuff and macros misuse. Some stuff is moved into scram.hrl and type_compat.hrl. All macros have been replaced with the corresponding function calls. TODO: probably type_compat.hrl is not even needed anymore since we support only Erlang >= OTP 17.5
* Omit 'xmlns' field from 'feature_csi' recordHolger Weiss2018-06-041-1/+1
| | | | | The 'xmpp' library has been updated to omit the 'xmlns' field from the 'feature_csi' record.
* mod_client_state: Add 'csi_activity' hookHolger Weiss2018-04-011-7/+17
| | | | Closes #2358.
* Fix compilation ordering in mix by s/-behavior/-behaviour/Paweł Chmielowski2018-01-311-1/+1
|
* Introduce new gen_mod callback: mod_options/1Evgeniy Khramtsov2018-01-231-12/+16
| | | | | | | The callback is supposed to provide known options and their default values, as long as the documentation. Passing default values into get_mod functions is now deprecated: all defaults should be provided by the Mod:mod_options/1 callback.
* Update copyright datesEvgeniy Khramtsov2018-01-051-1/+1
|
* Don't crash when 'from' is undefinedEvgeniy Khramtsov2017-10-061-1/+4
| | | | | | | c2s_filter_send hook may pass a stanza with undefined from/to (due to legacy auth for example). Work around this problem. Fixes #2036
* Correctly handle mod_client_state (re)loadEvgeniy Khramtsov2017-10-051-7/+17
|
* mod_client_state: Reset state on session resumeHolger Weiss2017-06-211-2/+2
| | | | | Don't restore the previous CSI state when a stream management session is resumed.
* Don't validate an option in gen_mod:get*opt() functionsEvgeniy Khramtsov2017-04-301-33/+9
| | | | | | | | | | | | | | The changes are very similar to those from previous commit: * Now there is no need to pass validating function in gen_mod:get_opt() and gen_mod:get_module_opt() functions, because the modules' configuration keeps already validated values. * New functions gen_mod:get_opt/2 and gen_mod:get_module_opt/3 are introduced. * Functions gen_mod:get_opt/4 and get_module_opt/5 are deprecated. If the functions are still called, the "function" argument is simply ignored. * Validating callback Mod:listen_opt_type/1 is introduced to validate listening options at startup.
* mod_client_state: Remove some empty linesHolger Weiss2017-04-061-8/+3
|
* mod_client_state: Queue stanzas of each full JIDHolger Weiss2017-04-061-47/+26
| | | | | | | | Keep the latest stanzas of each given full JID, rather than dropping them when stanzas from a different resource are received. This change makes sure the recipient receives the latest status of all clients of each contact. It also ensures the recipient will see the current list of occupants of joined MUC rooms.
* mod_client_state: Don't keep track of queue sizeHolger Weiss2017-04-061-10/+10
| | | | Use maps:size/1 rather than keeping track of the size ourselves.
* Get rid of jid:to_string/1 and jid:from_string/1Evgeniy Khramtsov2017-02-261-6/+6
|
* Reload modules when reloading configuration fileEvgeniy Khramtsov2017-02-221-27/+73
|
* Fix some dialyzer warningsEvgeniy Khramtsov2017-02-161-1/+1
|
* Avoid using maps:get/2 to keep compatibility with OTP 17.5Evgeniy Khramtsov2017-01-231-4/+4
|
* Don't use maps:take it available in R19 onlyPaweł Chmielowski2017-01-231-4/+5
|
* Merge branch 'new_stream'Evgeniy Khramtsov2017-01-201-123/+205
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/cyrsasl.erl src/ejabberd_c2s.erl src/ejabberd_cluster.erl src/ejabberd_frontend_socket.erl src/ejabberd_node_groups.erl src/ejabberd_router.erl src/mod_bosh.erl src/mod_ip_blacklist.erl src/mod_muc_mnesia.erl src/mod_offline.erl src/mod_proxy65_sm.erl
| * Adopt remaining code to support new hooksEvgeniy Khramtsov2017-01-091-122/+209
| |
| * Initial version of new XMPP stream behaviour (for review)Evgeniy Khramtsov2016-12-111-9/+4
| |
* | Update copyright date automatically (#1442)Badlop2017-01-021-1/+1
|/
* Merge branch 'master' into xml-ngEvgeniy Khramtsov2016-11-121-24/+26
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/adhoc.erl src/cyrsasl_oauth.erl src/ejabberd_c2s.erl src/ejabberd_config.erl src/ejabberd_service.erl src/gen_mod.erl src/mod_admin_extra.erl src/mod_announce.erl src/mod_carboncopy.erl src/mod_client_state.erl src/mod_configure.erl src/mod_echo.erl src/mod_mam.erl src/mod_muc.erl src/mod_muc_room.erl src/mod_offline.erl src/mod_pubsub.erl src/mod_stats.erl src/node_flat_sql.erl src/randoms.erl
| * mod_client_state: Let other modules filter stanzasHolger Weiss2016-08-061-3/+3
| | | | | | | | | | Don't stop execution of the 'csi_filter_stanza' hook if mod_client_state won't queue the stanza.
| * Add user's JID to CSI hook argumentsHolger Weiss2016-08-051-22/+23
| | | | | | | | | | Add the JID of the CSI user to the arguments of the 'csi_filter_stanza' and 'csi_flush_queue' hooks.
* | Make common tests working againEvgeniy Khramtsov2016-09-131-1/+1
| |
* | Rewrite mod_pubsub to use XML codecEvgeniy Khramtsov2016-08-301-2/+2
| |
* | Improve some type specsEvgeniy Khramtsov2016-08-091-11/+15
| |
* | Initial version based on XML generatorEvgeniy Khramtsov2016-07-181-76/+60
|/
* Get rid of warningsEvgeniy Khramtsov2016-07-071-1/+6
|
* mod_client_state: Throttle PEP stanzas by defaultHolger Weiss2016-06-291-2/+2
|
* Simplify check for carbon-copied chat statesHolger Weiss2016-06-051-1/+1
| | | | | | Let jlib:is_standalone_chat_state/1 unwrap carbon copies rather than leaving this to the caller. We still export jlib:unwrap_carbon/1, as this function might also be useful for other purposes.
* mod_client_state: Fix handling of chat statesHolger Weiss2016-06-051-4/+3
| | | | | Fix the check for chat states sent from other resources of the same user.
* mod_client_state: Simplify handling of PEP stanzasHolger Weiss2016-06-051-30/+12
| | | | | | Let mod_client_state simply queue the most recent item of a given PEP node (from a given contact) instead of also taking the payload namespace into account.
* XEP-0352: Pass chat states of other resourcesHolger Weiss2016-06-031-3/+14
| | | | | | | Don't hold back (carbon copies of) chat states from other resources, as they might be used to sync the state of conversations across clients. E.g., if one client becomes active, another one might want to remove a notification (immediately).
* Unwrap carbon copies when checking for chat statesHolger Weiss2016-06-031-1/+1
| | | | Detect standalone chat states that were carbon-copied.
* mod_client_state: Add function specificationsHolger Weiss2016-05-181-50/+107
| | | | | Add function specifications and apply cosmetic changes to mod_client_state.
* mod_client_state: Add "queue_pep" optionHolger Weiss2016-05-171-17/+88
| | | | | | | If the new "queue_pep" option is enabled and the client is inactive, PEP notifications are throttled in a similar way to presence stanzas and chat states. Only the most recent notification of a given node and payload type will be queued from a given contact.
* mod_client_state: Queue chat state notificationsHolger Weiss2016-05-171-15/+15
| | | | | | Queue standalone chat states instead of simply dropping them when the client is inactive. Only the most recent chat state of a given client is queued.
* Move CSI queue handling into mod_client_stateHolger Weiss2016-05-171-23/+84
| | | | | | Let mod_client_state handle the queueing of stanzas, not just their classification. This simplifies the ejabberd_c2s code and gives (custom) CSI modules more flexibility.