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 |