diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-01-08 13:41:16 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-01-08 13:41:16 +0300 |
commit | edf03b0f3de1a9815803dc56f51efe6d28a721f9 (patch) | |
tree | 9e08428a1e4836e949523f43a238a0f16e112eab /src | |
parent | Fix decompressing of custom elements with custom namespace (diff) |
mod_offline: make some database callbacks optional
Diffstat (limited to 'src')
-rw-r--r-- | src/mod_offline.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mod_offline.erl b/src/mod_offline.erl index 84187eb70..c866583a0 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -101,6 +101,8 @@ -callback remove_all_messages(binary(), binary()) -> {atomic, any()}. -callback count_messages(binary(), binary()) -> non_neg_integer(). +-optional_callbacks([remove_expired_messages/1, remove_old_messages/2]). + depends(_Host, _Opts) -> []. @@ -551,12 +553,18 @@ privacy_check_packet(#{lserver := LServer} = State, Pkt, Dir) -> remove_expired_messages(Server) -> LServer = jid:nameprep(Server), Mod = gen_mod:db_mod(LServer, ?MODULE), - Mod:remove_expired_messages(LServer). + case erlang:function_exported(Mod, remove_expired_messages, 1) of + true -> Mod:remove_expired_messages(LServer); + false -> erlang:error(not_implemented) + end. remove_old_messages(Days, Server) -> LServer = jid:nameprep(Server), Mod = gen_mod:db_mod(LServer, ?MODULE), - Mod:remove_old_messages(Days, LServer). + case erlang:function_exported(Mod, remove_old_messages, 2) of + true -> Mod:remove_old_messages(Days, LServer); + false -> erlang:error(not_implemented) + end. -spec remove_user(binary(), binary()) -> ok. remove_user(User, Server) -> |