mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
mod_muc_room: Fix the room's CAPS hash
Don't forget the room's xdata when calculating the CAPS hash.
This commit is contained in:
parent
8c03427c25
commit
adf0d7de91
@ -2174,7 +2174,9 @@ send_initial_presences_and_messages(From, Nick, Presence, NewState, OldState) ->
|
||||
send_self_presence(JID, State) ->
|
||||
AvatarHash = (State#state.config)#config.vcard_xupdate,
|
||||
DiscoInfo = make_disco_info(JID, State),
|
||||
DiscoHash = mod_caps:compute_disco_hash(DiscoInfo, sha),
|
||||
Extras = iq_disco_info_extras(<<"en">>, State, true),
|
||||
DiscoInfo1 = DiscoInfo#disco_info{xdata = [Extras]},
|
||||
DiscoHash = mod_caps:compute_disco_hash(DiscoInfo1, sha),
|
||||
Els1 = [#caps{hash = <<"sha-1">>,
|
||||
node = ejabberd_config:get_uri(),
|
||||
version = DiscoHash}],
|
||||
@ -3897,10 +3899,11 @@ process_iq_disco_info(From, #iq{type = get, lang = Lang,
|
||||
try
|
||||
true = mod_caps:is_valid_node(Node),
|
||||
DiscoInfo = make_disco_info(From, StateData),
|
||||
Hash = mod_caps:compute_disco_hash(DiscoInfo, sha),
|
||||
Node = <<(ejabberd_config:get_uri())/binary, $#, Hash/binary>>,
|
||||
Extras = iq_disco_info_extras(Lang, StateData, true),
|
||||
{result, DiscoInfo#disco_info{node = Node, xdata = [Extras]}}
|
||||
DiscoInfo1 = DiscoInfo#disco_info{xdata = [Extras]},
|
||||
Hash = mod_caps:compute_disco_hash(DiscoInfo1, sha),
|
||||
Node = <<(ejabberd_config:get_uri())/binary, $#, Hash/binary>>,
|
||||
{result, DiscoInfo1#disco_info{node = Node}}
|
||||
catch _:{badmatch, _} ->
|
||||
Txt = <<"Invalid node name">>,
|
||||
{error, xmpp:err_item_not_found(Txt, Lang)}
|
||||
|
Loading…
Reference in New Issue
Block a user