Software /
code /
prosody
Comparison
plugins/muc/mod_muc.lua @ 6334:ba2555e06c7c
plugins/muc/mod_muc: persistent rooms keyval store needs username as nil
author | daurnimator <quae@daurnimator.com> |
---|---|
date | Thu, 07 Aug 2014 18:03:31 -0400 |
parent | 6333:93b8438fe761 |
child | 6348:bffc885dc378 |
comparison
equal
deleted
inserted
replaced
6333:93b8438fe761 | 6334:ba2555e06c7c |
---|---|
50 local room_configs = module:open_store("config"); | 50 local room_configs = module:open_store("config"); |
51 | 51 |
52 local function room_save(room, forced) | 52 local function room_save(room, forced) |
53 local node = jid_split(room.jid); | 53 local node = jid_split(room.jid); |
54 local is_persistent = persistent.get(room); | 54 local is_persistent = persistent.get(room); |
55 persistent_rooms:set(room.jid, is_persistent); | 55 persistent_rooms:set(nil, room.jid, is_persistent); |
56 if is_persistent then | 56 if is_persistent then |
57 local history = room._data.history; | 57 local history = room._data.history; |
58 room._data.history = nil; | 58 room._data.history = nil; |
59 local data = { | 59 local data = { |
60 jid = room.jid; | 60 jid = room.jid; |
100 function forget_room(jid) | 100 function forget_room(jid) |
101 rooms[jid] = nil; | 101 rooms[jid] = nil; |
102 local node = jid_split(room.jid); | 102 local node = jid_split(room.jid); |
103 room_configs:set(node, nil); | 103 room_configs:set(node, nil); |
104 if persistent.get(room_jid) then | 104 if persistent.get(room_jid) then |
105 persistent_rooms:set(room_jid, nil); | 105 persistent_rooms:set(nil, room_jid, nil); |
106 end | 106 end |
107 end | 107 end |
108 | 108 |
109 function get_room_from_jid(room_jid) | 109 function get_room_from_jid(room_jid) |
110 local room = rooms[room_jid]; | 110 local room = rooms[room_jid]; |
111 if room == nil then | 111 if room == nil then |
112 -- Check if in persistent storage | 112 -- Check if in persistent storage |
113 if persistent_rooms:get(room_jid) then | 113 if persistent_rooms:get(nil, room_jid) then |
114 room = restore_room(room_jid); | 114 room = restore_room(room_jid); |
115 if room == nil then | 115 if room == nil then |
116 module:log("error", "Missing data for room '%s', removing from persistent room list", room_jid); | 116 module:log("error", "Missing data for room '%s', removing from persistent room list", room_jid); |
117 persistent_rooms:set(room_jid, nil); | 117 persistent_rooms:set(nil, room_jid, nil); |
118 end | 118 end |
119 end | 119 end |
120 end | 120 end |
121 return room | 121 return room |
122 end | 122 end |