aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mod_muc/mod_muc.erl3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mod_muc/mod_muc.erl b/src/mod_muc/mod_muc.erl
index caba62e2c..c8df525f8 100644
--- a/src/mod_muc/mod_muc.erl
+++ b/src/mod_muc/mod_muc.erl
@@ -328,6 +328,9 @@ init([Host, Opts]) ->
{attributes, record_info(fields, muc_online_room)},
{types, [{name_host, {text, text}},
{pid, pid}]}]),
+ %% If ejabberd stops abruptly, ODBC table keeps obsolete data. Let's clean:
+ gen_storage:dirty_delete_where(MyHost, muc_online_room,
+ [{'=', name_host, {'_', MyHost}}]),
gen_storage:add_table_copy(MyHost, muc_online_room, node(), ram_copies),
catch ets:new(muc_online_users, [bag, named_table, public, {keypos, 2}]),
gen_storage:add_table_index(MyHost, muc_registered, nick),