]> granicus.if.org Git - ejabberd/commitdiff
When applying limit of max msgs in spool check only spool size
authorPaweł Chmielowski <pchmielowski@process-one.net>
Tue, 7 May 2019 07:58:14 +0000 (09:58 +0200)
committerPaweł Chmielowski <pchmielowski@process-one.net>
Tue, 7 May 2019 07:58:14 +0000 (09:58 +0200)
src/mod_offline.erl

index 3e240dbfb0a817f2fb19d1609cbb4d32694c82a1..63a0d6763d76797105f5b63892dde3ed9024379b 100644 (file)
@@ -195,7 +195,7 @@ store_offline_msg(#offline_msg{us = {User, Server}, packet = Pkt} = Msg) ->
                infinity ->
                    Mod:store_message(Msg);
                Limit ->
-                   Num = count_offline_messages(User, Server),
+                   Num = count_messages_in_db(User, Server),
                    if Num < Limit ->
                        Mod:store_message(Msg);
                        true ->
@@ -1053,10 +1053,14 @@ count_offline_messages(User, Server) ->
            Res = read_db_messages(LUser, LServer),
            count_mam_messages(LUser, LServer, Res);
        _ ->
-           Mod = gen_mod:db_mod(LServer, ?MODULE),
-           Mod:count_messages(LUser, LServer)
+           count_messages_in_db(LUser, LServer)
     end.
 
+-spec count_messages_in_db(binary(), binary()) -> non_neg_integer().
+count_messages_in_db(LUser, LServer) ->
+    Mod = gen_mod:db_mod(LServer, ?MODULE),
+    Mod:count_messages(LUser, LServer).
+
 -spec add_delay_info(message(), binary(),
                     undefined | erlang:timestamp()) -> message().
 add_delay_info(Packet, LServer, TS) ->