mod_push: Check for payload in encrypted messages

While distinguishing actual chat messages from other message types,
don't classify all <encrypted/> messages as chat messages, but only
those that have a <payload/> element.
This commit is contained in:
Holger Weiss 2019-03-11 22:58:53 +01:00
parent 946baa972d
commit 328553ea3f
1 changed files with 7 additions and 2 deletions

View File

@ -682,8 +682,13 @@ get_body_text(#message{body = Body} = Msg) ->
end.
-spec body_is_encrypted(message()) -> boolean().
body_is_encrypted(#message{sub_els = SubEls}) ->
lists:keyfind(<<"encrypted">>, #xmlel.name, SubEls) /= false.
body_is_encrypted(#message{sub_els = MsgEls}) ->
case lists:keyfind(<<"encrypted">>, #xmlel.name, MsgEls) of
#xmlel{children = EncEls} ->
lists:keyfind(<<"payload">>, #xmlel.name, EncEls) /= false;
false ->
false
end.
-spec inspect_error(iq()) -> {atom(), binary()}.
inspect_error(IQ) ->