mirror of
https://github.com/processone/ejabberd
synced 2025-10-03 09:49:18 +02:00
mod_caps: Don't forget caps on XEP-0198 resumption
Many thanks to Thilo Molitor for spotting the issue and testing the fix.
This commit is contained in:
parent
4e014d23bd
commit
2cdda4cf49
1 changed files with 13 additions and 1 deletions
|
@ -49,7 +49,8 @@
|
||||||
handle_cast/2, terminate/2, code_change/3]).
|
handle_cast/2, terminate/2, code_change/3]).
|
||||||
|
|
||||||
-export([user_send_packet/1, user_receive_packet/1,
|
-export([user_send_packet/1, user_receive_packet/1,
|
||||||
c2s_presence_in/2, mod_opt_type/1, mod_options/1, mod_doc/0]).
|
c2s_presence_in/2, c2s_copy_session/2,
|
||||||
|
mod_opt_type/1, mod_options/1, mod_doc/0]).
|
||||||
|
|
||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
|
|
||||||
|
@ -274,6 +275,13 @@ c2s_presence_in(C2SState,
|
||||||
C2SState#{caps_resources => NewRs}
|
C2SState#{caps_resources => NewRs}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
-spec c2s_copy_session(ejabberd_c2s:state(), ejabberd_c2s:state())
|
||||||
|
-> ejabberd_c2s:state().
|
||||||
|
c2s_copy_session(C2SState, #{caps_resources := Rs}) ->
|
||||||
|
C2SState#{caps_resources => Rs};
|
||||||
|
c2s_copy_session(C2SState, _) ->
|
||||||
|
C2SState.
|
||||||
|
|
||||||
-spec depends(binary(), gen_mod:opts()) -> [{module(), hard | soft}].
|
-spec depends(binary(), gen_mod:opts()) -> [{module(), hard | soft}].
|
||||||
depends(_Host, _Opts) ->
|
depends(_Host, _Opts) ->
|
||||||
[].
|
[].
|
||||||
|
@ -304,6 +312,8 @@ init([Host|_]) ->
|
||||||
caps_stream_features, 75),
|
caps_stream_features, 75),
|
||||||
ejabberd_hooks:add(s2s_in_post_auth_features, Host, ?MODULE,
|
ejabberd_hooks:add(s2s_in_post_auth_features, Host, ?MODULE,
|
||||||
caps_stream_features, 75),
|
caps_stream_features, 75),
|
||||||
|
ejabberd_hooks:add(c2s_copy_session, Host, ?MODULE,
|
||||||
|
c2s_copy_session, 75),
|
||||||
ejabberd_hooks:add(disco_local_features, Host, ?MODULE,
|
ejabberd_hooks:add(disco_local_features, Host, ?MODULE,
|
||||||
disco_features, 75),
|
disco_features, 75),
|
||||||
ejabberd_hooks:add(disco_local_identity, Host, ?MODULE,
|
ejabberd_hooks:add(disco_local_identity, Host, ?MODULE,
|
||||||
|
@ -341,6 +351,8 @@ terminate(_Reason, State) ->
|
||||||
?MODULE, caps_stream_features, 75),
|
?MODULE, caps_stream_features, 75),
|
||||||
ejabberd_hooks:delete(s2s_in_post_auth_features, Host,
|
ejabberd_hooks:delete(s2s_in_post_auth_features, Host,
|
||||||
?MODULE, caps_stream_features, 75),
|
?MODULE, caps_stream_features, 75),
|
||||||
|
ejabberd_hooks:delete(c2s_copy_session, Host, ?MODULE,
|
||||||
|
c2s_copy_session, 75),
|
||||||
ejabberd_hooks:delete(disco_local_features, Host,
|
ejabberd_hooks:delete(disco_local_features, Host,
|
||||||
?MODULE, disco_features, 75),
|
?MODULE, disco_features, 75),
|
||||||
ejabberd_hooks:delete(disco_local_identity, Host,
|
ejabberd_hooks:delete(disco_local_identity, Host,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue