From faf9b20ac00d361584f6fe2d33562d6f3ff70683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Mon, 29 Apr 2019 16:31:37 +0200 Subject: [PATCH] Return correct value from count_offline_messages with mam storage option --- src/mod_offline.erl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mod_offline.erl b/src/mod_offline.erl index 4bacf1e90..94a64d83a 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -733,6 +733,8 @@ read_db_messages(LUser, LServer) -> end end, Mod:read_message_headers(LUser, LServer)). +-spec read_mam_messages(binary(), binary(), [#offline_msg{} | {any(), message()}]) -> + [{integer(), message()}]. read_mam_messages(LUser, LServer, ReadMsgs) -> {Timestamp, ExtraMsgs} = lists:foldl( fun({_Node, #message{id = <<"ActivityMarker">>, @@ -984,8 +986,14 @@ webadmin_user_parse_query(Acc, _Action, _User, _Server, count_offline_messages(User, Server) -> LUser = jid:nodeprep(User), LServer = jid:nameprep(Server), - Mod = gen_mod:db_mod(LServer, ?MODULE), - Mod:count_messages(LUser, LServer). + case use_mam_for_user(User, Server) of + true -> + Res = read_db_messages(LUser, LServer), + length(read_mam_messages(LUser, LServer, Res)); + _ -> + Mod = gen_mod:db_mod(LServer, ?MODULE), + Mod:count_messages(LUser, LServer) + end. -spec add_delay_info(message(), binary(), undefined | erlang:timestamp()) -> message().