Evgeniy Khramtsov
f3af117108
Correctly handle mod_client_state (re)load
2017-10-05 11:03:36 +03:00
Holger Weiss
950aca380c
mod_client_state: Reset state on session resume
...
Don't restore the previous CSI state when a stream management session is
resumed.
2017-06-21 01:05:46 +02:00
Evgeniy Khramtsov
fddd6110e0
Don't validate an option in gen_mod:get*opt() functions
...
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.
2017-04-30 19:01:47 +03:00
Holger Weiss
9fa5f37f74
mod_client_state: Remove some empty lines
2017-04-06 23:00:53 +02:00
Holger Weiss
0ddd2e0ebf
mod_client_state: Queue stanzas of each full JID
...
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.
2017-04-06 22:19:00 +02:00
Holger Weiss
7827faae4b
mod_client_state: Don't keep track of queue size
...
Use maps:size/1 rather than keeping track of the size ourselves.
2017-04-06 21:01:26 +02:00
Evgeniy Khramtsov
c1439ddd5b
Get rid of jid:to_string/1 and jid:from_string/1
2017-02-26 10:07:12 +03:00
Evgeniy Khramtsov
3c4057ff55
Reload modules when reloading configuration file
2017-02-22 19:46:47 +03:00
Evgeniy Khramtsov
218eeae797
Fix some dialyzer warnings
2017-02-16 14:18:36 +03:00
Evgeniy Khramtsov
48d8498dbb
Avoid using maps:get/2 to keep compatibility with OTP 17.5
2017-01-23 16:30:16 +03:00
Paweł Chmielowski
5e5a8bbdcf
Don't use maps:take it available in R19 only
2017-01-23 12:56:08 +01:00
Evgeniy Khramtsov
d5d906184f
Merge branch 'new_stream'
...
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
2017-01-20 19:35:46 +03:00
Evgeniy Khramtsov
1e55e018e5
Adopt remaining code to support new hooks
2017-01-09 17:02:17 +03:00
Badlop
5fdd1c39fe
Update copyright date automatically ( #1442 )
2017-01-02 21:42:06 +01:00
Evgeniy Khramtsov
5cc8e807df
Initial version of new XMPP stream behaviour (for review)
2016-12-11 15:03:37 +03:00
Evgeniy Khramtsov
78a44e0176
Merge branch 'master' into xml-ng
...
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
2016-11-12 13:27:15 +03:00
Evgeniy Khramtsov
e987b88848
Make common tests working again
2016-09-13 12:30:05 +03:00
Evgeniy Khramtsov
45eb49125b
Rewrite mod_pubsub to use XML codec
2016-08-30 09:48:08 +03:00
Evgeniy Khramtsov
522a186a38
Improve some type specs
2016-08-09 10:56:32 +03:00
Holger Weiss
b62aa3d2dc
mod_client_state: Let other modules filter stanzas
...
Don't stop execution of the 'csi_filter_stanza' hook if mod_client_state
won't queue the stanza.
2016-08-06 13:36:27 +02:00
Holger Weiss
91e26fbf7a
Add user's JID to CSI hook arguments
...
Add the JID of the CSI user to the arguments of the 'csi_filter_stanza'
and 'csi_flush_queue' hooks.
2016-08-05 23:47:18 +02:00
Evgeniy Khramtsov
9a8e197d7e
Initial version based on XML generator
2016-07-18 15:01:32 +03:00
Evgeniy Khramtsov
71f27ee7d4
Get rid of warnings
2016-07-07 12:17:38 +03:00
Holger Weiss
10d4c16a97
mod_client_state: Throttle PEP stanzas by default
2016-06-29 22:22:49 +02:00
Holger Weiss
60803f5780
Simplify check for carbon-copied chat states
...
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.
2016-06-05 22:36:56 +02:00
Holger Weiss
5c3074c0fb
mod_client_state: Fix handling of chat states
...
Fix the check for chat states sent from other resources of the same
user.
2016-06-05 22:04:38 +02:00
Holger Weiss
4789ddf1ee
mod_client_state: Simplify handling of PEP stanzas
...
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.
2016-06-05 21:48:03 +02:00
Holger Weiss
8305cc293b
XEP-0352: Pass chat states of other resources
...
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).
2016-06-03 21:52:11 +02:00
Holger Weiss
4d5eab6662
Unwrap carbon copies when checking for chat states
...
Detect standalone chat states that were carbon-copied.
2016-06-03 20:28:48 +02:00
Holger Weiss
420ae65590
mod_client_state: Add function specifications
...
Add function specifications and apply cosmetic changes to
mod_client_state.
2016-05-18 21:30:38 +02:00
Holger Weiss
8f72c27b88
mod_client_state: Add "queue_pep" option
...
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.
2016-05-17 22:12:04 +02:00
Holger Weiss
4f009e64fc
mod_client_state: Queue chat state notifications
...
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.
2016-05-17 20:55:45 +02:00
Holger Weiss
ba74c1c367
Move CSI queue handling into mod_client_state
...
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.
2016-05-17 19:27:18 +02:00
Holger Weiss
4717d64d7a
mod_client_state: Delete only the configured hooks
2016-05-08 16:45:31 +02:00
Mickael Remond
dfc29ea03c
Switch to Fast XML module
2016-02-03 19:03:17 +01:00
Badlop
f448ff608a
Update copyright to 2016 ( #901 )
2016-01-13 12:29:14 +01:00
Holger Weiss
44f5e411c5
mod_offline: Support discarding chat states
...
XEP-0160 says that standalone chat state notifications should not be
stored offline. By default, mod_offline discards them now.
Closes #842 .
2015-11-26 08:35:49 +01:00
Holger Weiss
46bf190fd0
mod_client_state: Add my email address to header
2015-11-04 01:19:19 +01:00
Holger Weiss
c0497d46af
mod_client_state: Throttle stanzas by default
...
Enable the mod_client_state options "drop_chat_states" and
"queue_presence" by default. These features are now well-tested in
practice.
2015-08-05 00:05:11 +02:00
Badlop
6631078884
Document a few more supported protocols
2015-06-22 13:11:37 +02:00
Evgeniy Khramtsov
fb6267f38e
Add config validation at startup
2015-06-01 15:38:27 +03:00
Badlop
0c725b5fac
Document protocol support (EJABS-1620)
2015-05-21 17:04:05 +02:00
Christophe Romain
120e581865
Fix missing copyright dates to 2015 (EJAB-1733)
2015-01-21 14:52:37 +01:00
Holger Weiss
6900a41e7d
Fix mod_client_state's configuration parsing
...
Don't log an "invalid value" message when "queue_presence" or
"drop_chat_states" is set to "false".
2014-11-25 12:05:09 +01:00
Holger Weiss
277e1dc3ff
Offer CSI stream feature only if configured
...
Don't offer the CSI stream feature when mod_client_state isn't actually
configured to filter stanzas. This makes sure clients won't send CSI
tags that end up being ignored.
2014-09-25 18:28:20 +02:00
Holger Weiss
b8c98232b8
Support XEP-0352: Client State Indication
2014-09-11 17:44:29 +02:00