From 328553ea3f68410b6c13e382132d5b53e980bd9b Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 11 Mar 2019 22:58:53 +0100 Subject: mod_push: Check for payload in encrypted messages While distinguishing actual chat messages from other message types, don't classify all messages as chat messages, but only those that have a element. --- src/mod_push.erl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mod_push.erl b/src/mod_push.erl index a6e871375..2cf34f65f 100644 --- a/src/mod_push.erl +++ b/src/mod_push.erl @@ -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) -> -- cgit v1.2.3