diff options
| author | Jerome Sautret <jerome.sautret@process-one.net> | 2015-03-13 18:29:57 +0100 |
|---|---|---|
| committer | Christophe Romain <christophe.romain@process-one.net> | 2015-03-20 10:40:19 +0100 |
| commit | 6b67a66a1ba33f3dc4346f8fffd1f9535ce54d17 (patch) | |
| tree | 863b118f9c9f6f242d5cf350dc865d49965806b4 /src | |
| parent | Fix mod_offline termination (diff) | |
Added MySQL support for delete_old_messages (offline) command.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mod_offline.erl | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mod_offline.erl b/src/mod_offline.erl index d345140e2..d90748255 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -236,7 +236,7 @@ store_offline_msg(Host, {User, _}, Msgs, Len, MaxOfflineMsgs, Len + count_offline_messages(User, Host); true -> 0 end, - if + if Count > MaxOfflineMsgs -> discard_warn_sender(Msgs); true -> @@ -561,7 +561,19 @@ remove_old_messages(Days, _LServer, mnesia) -> ok, offline_msg) end, mnesia:transaction(F); -remove_old_messages(_Days, _LServer, odbc) -> + +remove_old_messages(Days, LServer, odbc) -> + case catch ejabberd_odbc:sql_query( + LServer, + [<<"DELETE FROM spool" + " WHERE created_at < " + "DATE_SUB(CURDATE(), INTERVAL ">>, + integer_to_list(Days), <<" DAY);">>]) of + {updated, N} -> + ?INFO_MSG("~p message(s) deleted from offline spool", [N]); + _Error -> + ?ERROR_MSG("Cannot delete message in offline spool: ~p", [_Error]) + end, {atomic, ok}; remove_old_messages(_Days, _LServer, riak) -> {atomic, ok}. |
