Alexey Shchepin
b080b8f54d
Use user_receive_packet hook in mod_block_strangers
2017-01-16 18:40:30 +03:00
Alexey Shchepin
fedfe5427c
Add mod_block_strangers
2017-01-16 18:14:14 +03:00
Evgeniy Khramtsov
31491ebe16
Fix some corner cases while re-reading RFC6120
2017-01-13 11:35:47 +03:00
Evgeniy Khramtsov
5cfe57ece5
Add 'supervisor' listening option
...
If set to 'true' (this is the default), new processes spawned by
ejabberd_listener will be attached to the corresponding supervisor.
No such processes will be attached to a supervisor otherwise.
Setting this to 'false' will improve performance of high loaded
systems where new C2S/S2S processes are spawned very rapidly.
2017-01-11 10:56:04 +03:00
Evgeniy Khramtsov
1e55e018e5
Adopt remaining code to support new hooks
2017-01-09 17:02:17 +03:00
Evgeniy Khramtsov
cf87c5664f
Reflect cyrsasl API changes in remaining code
2016-12-31 13:48:55 +03:00
Evgeniy Khramtsov
e7fe4dc474
More refactoring on session management
2016-12-30 00:00:36 +03:00
Evgeniy Khramtsov
309bdfbe28
Add xmpp_stream_out behaviour and rewrite s2s/SM code
2016-12-28 09:47:11 +03:00
Evgeniy Khramtsov
7f653cfe76
Rewrite ejabberd_service to use new XMPP stream API
2016-12-11 18:24:51 +03:00
Evgeniy Khramtsov
5cc8e807df
Initial version of new XMPP stream behaviour (for review)
2016-12-11 15:03:37 +03:00
Holger Weiss
3325e69ae6
Let mod_carboncopy mark copied messages
...
Carbon copies are now marked with a 'carbon_copy' flag. This makes it
easier to identify them.
2016-11-22 22:21:34 +01: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
f6236d456d
Add more tests for privacy lists and blocking command
2016-10-22 13:01:45 +03:00
Holger Weiss
e54ba3db5b
XEP-0198: Cope with invalid 'from'/'to' attributes
...
Check whether the 'from' and 'to' attributes are valid before bouncing
or resending a stanza from the stream management queue. They might be
invalid in certain corner cases.
Thanks to Evgeniy for spotting this.
2016-10-06 23:20:45 +02:00
Evgeniy Khramtsov
3112a7187f
Test anonymous auth
2016-09-25 09:57:56 +03:00
Evgeniy Khramtsov
fa31e3ef23
Deprecate jlib:integer_to_binary/1 and jlib:binary_to_integer/1
2016-09-24 23:34:28 +03:00
Evgeniy Khramtsov
58969fb854
Improve namespace handling
2016-09-24 14:17:21 +03:00
Evgeniy Khramtsov
53209b9ab1
Add tests for s2s code
2016-09-23 12:30:33 +03:00
Evgeniy Khramtsov
ceda073766
Add tests for external component
2016-09-21 10:45:11 +03:00
Evgeniy Khramtsov
a4ec064455
Add more tests for C2S
2016-09-20 14:04:07 +03:00
Christophe Romain
c39501a48d
Merge branch 'push-requirements' of https://github.com/weiss/ejabberd into weiss-push-requirements
2016-09-13 14:29:14 +02:00
Evgeniy Khramtsov
e987b88848
Make common tests working again
2016-09-13 12:30:05 +03:00
Holger Weiss
d222fed228
XEP-0198: Cancel timer when waiting for resumption
...
If an ACK timer is active while going into the 'wait_for_resume' state,
cancel that timer.
2016-09-09 00:21:36 +02:00
Evgeniy Khramtsov
c29a48695d
Rename #error{} record to #stanza_error{}
2016-09-08 17:08:48 +03:00
Holger Weiss
621f0e2b7c
New stream management option: ack_timeout
...
Close the connection if a stream management client fails to respond to
an acknowledgement request within 60 seconds. This number of seconds
can be changed with the new "ack_timeout" option, and the mechanism can
be disabled by specifying 'infinity'.
As a side effect of this change, a new acknowledgement is no longer
requested before the response to the previous request is received.
2016-09-07 23:16:54 +02:00
Christophe Romain
af0a493c66
Merge pull request #1253 from Amuhar/xep0356
2016-09-07 14:34:31 +02:00
Holger Weiss
4d19fb518f
ejabberd_c2s: Add XEP-0198 resumption hooks
...
The new 'c2s_session_pending' and 'c2s_session_resumed' hooks are
invoked when a stream management session is pending and resumed,
respectively.
2016-08-15 21:49:58 +02:00
Holger Weiss
e7217e6320
Add functions to get/set some c2s state elements
2016-08-15 20:24:43 +02:00
Evgeniy Khramtsov
522a186a38
Improve some type specs
2016-08-09 10:56:32 +03: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
Holger Weiss
c2ef55a075
Cosmetic change: Set CSI state 'active' on resume
...
The CSI state is always set to 'active' when a stream management session
is resumed; so there's no need to apply the CSI state of the old c2s
process, first.
2016-08-05 20:09:52 +02:00
Evgeniy Khramtsov
4ff8d7918a
Change code to reflect recent changes in fxml_gen
2016-08-05 08:41:08 +03:00
Holger Weiss
78fa9e08a5
XEP-0198: Handle timeouts during stream resumption
...
If session resumption failed because requesting the #state from the old
c2s process took too long, the new c2s process will usually receive the
response. Let the new process handle that case gracefully.
2016-08-03 02:28:46 +02:00
Holger Weiss
3c1e4f0dfd
XEP-0198: Increase timeout for stream resumption
...
During stream resumption, the #state is transferred from the old c2s
process to the new one. This is usually very fast, but under certain
conditions, it can take longer than five seconds.
2016-08-03 02:15:15 +02:00
Paweł Chmielowski
fd365b2893
Display data that is send to websocket connection in debug log level
...
This should help with detecting problems like in #1097
2016-07-28 16:20:28 +02:00
Evgeniy Khramtsov
c409ed2f2c
Rewrite S2S and ejabberd_service code to use XML generator
2016-07-27 10:45:08 +03:00
Holger Weiss
4b0d71d402
Don't return error for blocked MUC PMs
...
If a message stanza is blocked as per XEP-0016 or XEP-0191 and the
stanza is marked as a private MUC message, don't return an error. This
makes sure users won't be kicked from MUC rooms when blocking other
participants.
2016-07-24 20:55:11 +02:00
Holger Weiss
d4d1941133
XEP-0198: Log debug message when dropping stanza
...
Log a debug message when an unacknowledged message is neither resent nor
bounced because it's archived.
2016-07-23 01:23:24 +02:00
Evgeniy Khramtsov
9a8e197d7e
Initial version based on XML generator
2016-07-18 15:01:32 +03:00
Holger Weiss
749033598d
Omit [info] message with number of queued stanzas
...
Just log a debug message if a stream management session times out and
some stanzas weren't acknowledged.
2016-07-10 22:21:57 +02:00
Paweł Chmielowski
3446aba753
Include correct version in stream:stream when reporting errors
...
This fixes issue #1174
2016-06-27 16:40:57 +02:00
Holger Weiss
c928956d73
XEP-0198: Apply cosmetic changes
2016-06-21 23:17:17 +02:00
Holger Weiss
7ddeac38b6
XEP-0198: Also count stanzas when socket is closed
...
Don't forget to count stanzas received from the stream management client
that are processed right after the connection was lost.
2016-06-21 22:54:41 +02:00
Paweł Chmielowski
3a8da27d86
Use {access,shaper}_rules_validator in other places where access rules are used
2016-06-21 13:18:24 +02:00
Holger Weiss
c91c5aa352
Fix handling of queued stanzas on session timeout
...
Don't fail to resend or bounce unacknowledged stanzas if the stream
management session timed out.
Closes #1160 .
2016-06-19 23:32:15 +02:00
Paweł Chmielowski
fffae97940
Use acl:access_matches in c2s
2016-05-26 11:08:53 +02:00
Holger Weiss
30e814dd4b
XEP-0198: Add 'h' attribute to <failed/> element
...
If a resume request is rejected because the session timed out, indicate
the number of handled stanzas as per version 1.5 of XEP-0198.
2016-05-24 22:20:58 +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
Evgeniy Khramtsov
be2a9e35ae
Fix C2S session data leak ( #1078 )
2016-05-09 14:18:47 +03:00
Holger Weiss
ff4a0e1808
XEP-0198: Use different error message for bounces
...
When stanzas are bounced from the stream management queue (because the
session timed out or was closed for some other reason), use a different
error message so that this situation can be distinguished from other
cases.
2016-05-06 14:12:22 +02:00