aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2018-10-25 01:22:57 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2018-10-25 01:22:57 +0200
commit30393bb69042afbac8c4303751fd4f8e69ca98c0 (patch)
treeb0d1002b874948a1a5f5a25be10e2fbe1fe4e120 /src
parentMove some functions from xmpp back into ejabberd (diff)
Move unwrap_mucsub_message/1 into misc
Diffstat (limited to 'src')
-rw-r--r--src/misc.erl20
-rw-r--r--src/mod_mam.erl2
-rw-r--r--src/mod_muc_room.erl21
3 files changed, 21 insertions, 22 deletions
diff --git a/src/misc.erl b/src/misc.erl
index 8a44f2b6b..5aa281565 100644
--- a/src/misc.erl
+++ b/src/misc.erl
@@ -29,7 +29,7 @@
%% API
-export([add_delay_info/3, add_delay_info/4,
- unwrap_carbon/1, is_standalone_chat_state/1,
+ unwrap_carbon/1, unwrap_mucsub_message/1, is_standalone_chat_state/1,
tolower/1, term_to_base64/1, base64_to_term/1, ip_to_list/1,
hex_to_bin/1, hex_to_base64/1, url_encode/1, expand_keyword/3,
atom_to_binary/1, binary_to_atom/1, tuple_to_binary/1,
@@ -91,6 +91,24 @@ unwrap_carbon(#message{} = Msg) ->
end;
unwrap_carbon(Stanza) -> Stanza.
+-spec unwrap_mucsub_message(xmpp_element()) -> message() | false.
+unwrap_mucsub_message(#message{} = OuterMsg) ->
+ case xmpp:get_subtag(OuterMsg, #ps_event{}) of
+ #ps_event{
+ items = #ps_items{
+ node = Node,
+ items = [
+ #ps_item{
+ sub_els = [#message{} = InnerMsg]} | _]}}
+ when Node == ?NS_MUCSUB_NODES_MESSAGES;
+ Node == ?NS_MUCSUB_NODES_SUBJECT ->
+ InnerMsg;
+ _ ->
+ false
+ end;
+unwrap_mucsub_message(_Packet) ->
+ false.
+
-spec is_standalone_chat_state(stanza()) -> boolean().
is_standalone_chat_state(Stanza) ->
case unwrap_carbon(Stanza) of
diff --git a/src/mod_mam.erl b/src/mod_mam.erl
index ca2cbeb02..9689a93a2 100644
--- a/src/mod_mam.erl
+++ b/src/mod_mam.erl
@@ -653,7 +653,7 @@ should_archive(#message{body = Body, subject = Subject,
true ->
true;
_ ->
- case mod_muc_room:unwrap_mucsub_message(Pkt) of
+ case misc:unwrap_mucsub_message(Pkt) of
#message{type = groupchat} = Msg ->
should_archive(Msg#message{type = chat}, LServer);
#message{} = Msg ->
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl
index aeb031763..492f9a4b3 100644
--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -39,8 +39,7 @@
is_occupant_or_admin/2,
route/2,
expand_opts/1,
- config_fields/0,
- unwrap_mucsub_message/1]).
+ config_fields/0]).
%% gen_fsm callbacks
-export([init/1,
@@ -4461,24 +4460,6 @@ wrap(From, To, Packet, Node) ->
id = p1_rand:get_string(),
sub_els = [El]}]}}]}.
--spec unwrap_mucsub_message(xmpp_element()) -> message() | false.
-unwrap_mucsub_message(#message{} = Packet) ->
- case xmpp:get_subtag(Packet, #ps_event{}) of
- #ps_event{
- items = #ps_items{
- node = Node,
- items = [
- #ps_item{
- sub_els = [#message{} = Message]} | _]}}
- when Node == ?NS_MUCSUB_NODES_MESSAGES;
- Node == ?NS_MUCSUB_NODES_SUBJECT ->
- Message;
- _ ->
- false
- end;
-unwrap_mucsub_message(_Packet) ->
- false.
-
%% -spec send_multiple(jid(), binary(), [#user{}], stanza()) -> ok.
%% send_multiple(From, Server, Users, Packet) ->
%% JIDs = [ User#user.jid || {_, User} <- ?DICT:to_list(Users)],