aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2010-12-23 02:10:14 +0100
committerBadlop <badlop@process-one.net>2010-12-23 02:16:00 +0100
commit7ca1c0387c5281ff92862e44de33becbeebf77b8 (patch)
tree4e52fd4a768269aa751180ec083930e6cf6aabfc
parentBugfix in starting persistent rooms when mod_muc odbc (EJAB-1365) (diff)
Clean muc_online_room when mod_muc starts (EJAB-1365)
-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),