| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The problem with #roster{} is that every new record entry is also stored
in the mnesia roster table. Adding the mix_participant_id there makes
no sense because the normal roster items are no MIX channels. Using
\#roster_item{} for the hook and #roster{} for storing the normal items
seems to be a better idea.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
For detached connection we free socket, so let's make code account for this
(and we really need it for printing debug informations).
This makes sure we call ejabberd_sm:close_session
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During XEP-0198 resumption, the ejabberd_c2s process that handles the
new connection reopens the ejabberd_sm session of the old one. Since
commit b4770815c0b0416c21d01507d2908f94c25b3097, the new process adds
the new session table entry before the old process removes the old one.
While adding the new one, ejabberd_sm checks for old sessions to
replace. This check assumes old SIDs compare lower than new ones. This
assumption didn't necessarily hold for the session resumption case,
where the old SID's timestamp was copied over to the new SID and only
the PID was updated. Therefore, the new process was killed if the new
PID happened to be smaller than the old one.
Fix this by having mod_stream_mgmt use its own SM-ID rather than copying
over the old SID's timestamp to the new SID.
Thanks to Thilo Molitor and Friedrich Altheide for reporting the issue,
and to Thomas Leister for his help with debugging it.
|
|
|
|
|
|
|
| |
Previously we only send that presence to direct presence recipients if
client also sent general self presence (without to attribute).
This should help with issue #3245
|
|
|
|
|
|
|
|
|
|
| |
The default value for the 'max_fsm_queue' option was set to 10000 in
commit 79685da90b514a49f9c412e31dccc17be9dd8680, and that value is still
documented to be the default. It was (probably unintentionally) changed
to 5000 in commit 03de853e4fdcf852ae75a86922c08bb1a0950e6d.
It makes sense to keep it larger than the value of mod_stream_mgmt's
'max_ack_queue' option.
|
| |
|
|
|
|
|
|
| |
It looks like old version of Smack don't accept request that are have
from sent to sender jid, but are only working when jid is set to server
address. This is also how it looks in old xmpp rfc examples.
|
|
|
|
|
|
|
|
|
|
| |
Calling sync version of xmpp_stream_in/out:stop could lead to messages
never being processed by c2s process if they were queued in p1_server.
This could be reproduced by when having messages in offline storage,
starting sessions, enabling stream_mgmt, sending initial presence, and then immediately
</stream:stream>, messages that mod_offline would send process would not
be bounced back by stream_mgmt.
|
|
|
|
| |
This is not correct per xmpp spec
|
|
|
|
|
|
|
| |
There is possibilty that between c2s process unregistering itself from sm
and terminating, some other process could try to send something to c2s,
which could result in messages to triggering mam/offline hooks, and causing
them not to be stored in any way.
|
| |
|
| |
|
|
|
|
| |
In other words don't hide the reason why c2s connection has failed
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now every such string MUST be encapsulated into ?T() macro.
The macro itself is defined in include/translate.hrl.
Example:
-module(foo).
-export([bar/1]).
-include("translate.hrl").
bar(Lang) ->
translate:translate(Lang, ?T("baz")).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The hook now accepts `true | {false, Reason :: binary()}` arguments
instead of just `true | false`
|
|
|
|
|
| |
This will prevent conflicts in callback names in mod_mqtt
Old callback function is still supported.
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Privacy lists: set from/to on packet *before* calling privacy_check_p…
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
==== WARNING: MUST BE ADDED TO RELEASE NOTES =====
The commit introduces the following incompatibility:
- Option 'ca_path' is deprecated and has no effect anymore:
option 'ca_file' should be used instead if needed.
==================================================
|
|
|
|
|
| |
The commit is supposed to improve logging at loglevel 3, which
is the recommended level for high loaded ejabberd servers
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fixes https://github.com/processone/xmpp/issues/35
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|