Software /
code /
prosody
Comparison
plugins/muc/mod_muc.lua @ 4924:d8b9fe5900a2
MUC: Handle missing persistent room data.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Tue, 12 Jun 2012 16:55:27 +0500 |
parent | 4528:875b90d5ce0f |
child | 5015:f19b38bfa015 |
comparison
equal
deleted
inserted
replaced
4923:760a1f367f02 | 4924:d8b9fe5900a2 |
---|---|
63 end | 63 end |
64 end | 64 end |
65 if forced then datamanager.store(nil, muc_host, "persistent", persistent_rooms); end | 65 if forced then datamanager.store(nil, muc_host, "persistent", persistent_rooms); end |
66 end | 66 end |
67 | 67 |
68 local persistent_errors = false; | |
68 for jid in pairs(persistent_rooms) do | 69 for jid in pairs(persistent_rooms) do |
69 local node = jid_split(jid); | 70 local node = jid_split(jid); |
70 local data = datamanager.load(node, muc_host, "config") or {}; | 71 local data = datamanager.load(node, muc_host, "config"); |
71 local room = muc_new_room(jid, { | 72 if data then |
72 max_history_length = max_history_messages; | 73 local room = muc_new_room(jid, { |
73 }); | 74 max_history_length = max_history_messages; |
74 room._data = data._data; | 75 }); |
75 room._data.max_history_length = max_history_messages; -- Overwrite old max_history_length in data with current settings | 76 room._data = data._data; |
76 room._affiliations = data._affiliations; | 77 room._data.max_history_length = max_history_messages; -- Overwrite old max_history_length in data with current settings |
77 room.route_stanza = room_route_stanza; | 78 room._affiliations = data._affiliations; |
78 room.save = room_save; | 79 room.route_stanza = room_route_stanza; |
79 rooms[jid] = room; | 80 room.save = room_save; |
81 rooms[jid] = room; | |
82 else -- missing room data | |
83 persistent_rooms[jid] = nil; | |
84 module:log("error", "Missing data for room '%s', removing from persistent room list", jid); | |
85 persistent_errors = true; | |
86 end | |
80 end | 87 end |
88 if persistent_errors then datamanager.store(nil, muc_host, "persistent", persistent_rooms); end | |
81 | 89 |
82 local host_room = muc_new_room(muc_host, { | 90 local host_room = muc_new_room(muc_host, { |
83 max_history_length = max_history_messages; | 91 max_history_length = max_history_messages; |
84 }); | 92 }); |
85 host_room.route_stanza = room_route_stanza; | 93 host_room.route_stanza = room_route_stanza; |