Software /
code /
prosody-modules
Comparison
mod_groups_internal/mod_groups_internal.lua @ 5847:f1e816df1f73
mod_groups_internal: Also remove MUCs that still exist, but have been destroyed
Tombstones could previously fool us into thinking the MUC was still there.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 12 Jan 2024 18:19:56 +0000 |
parent | 5845:fe3bde6ef95a |
child | 5848:865c77b5c6dc |
comparison
equal
deleted
inserted
replaced
5846:220502eb05aa | 5847:f1e816df1f73 |
---|---|
245 elseif group_info.mucs then | 245 elseif group_info.mucs then |
246 local user_jid = username .. "@" .. host; | 246 local user_jid = username .. "@" .. host; |
247 for i = #group_info.mucs, 1, -1 do | 247 for i = #group_info.mucs, 1, -1 do |
248 local muc_jid = group_info.mucs[i]; | 248 local muc_jid = group_info.mucs[i]; |
249 local room = muc_host.get_room_from_jid(muc_jid); | 249 local room = muc_host.get_room_from_jid(muc_jid); |
250 if not room then | 250 if not room or room._data.destroyed then |
251 -- MUC no longer available, for some reason | 251 -- MUC no longer available, for some reason |
252 -- Let's remove it from the circle metadata... | 252 -- Let's remove it from the circle metadata... |
253 table.remove(group_info.mucs, i); | 253 table.remove(group_info.mucs, i); |
254 group_info_store:set_key(group_id, "mucs", group_info.mucs); | 254 group_info_store:set_key(group_id, "mucs", group_info.mucs); |
255 else | 255 else |