equal
deleted
inserted
replaced
16 |
16 |
17 local lib_pubsub = module:require "pubsub"; |
17 local lib_pubsub = module:require "pubsub"; |
18 |
18 |
19 local empty_set = set_new(); |
19 local empty_set = set_new(); |
20 |
20 |
|
21 -- username -> object passed to module:add_items() |
|
22 local pep_service_items = {}; |
|
23 |
|
24 -- size of caches with full pubsub service objects |
|
25 local service_cache_size = module:get_option_number("pep_service_cache_size", 1000); |
|
26 |
21 -- username -> util.pubsub service object |
27 -- username -> util.pubsub service object |
22 local services = {}; |
28 local services = cache.new(service_cache_size, function (username, _) |
|
29 local item = pep_service_items[username]; |
|
30 pep_service_items[username] = nil; |
|
31 if item then |
|
32 module:remove_item("pep-service", item); |
|
33 end |
|
34 end):table(); |
23 |
35 |
24 -- username -> recipient -> set of nodes |
36 -- username -> recipient -> set of nodes |
25 local recipients = {}; |
37 local recipients = {}; |
26 |
38 |
27 -- caps hash -> set of nodes |
39 -- caps hash -> set of nodes |
200 normalize_jid = jid_bare; |
212 normalize_jid = jid_bare; |
201 |
213 |
202 check_node_config = check_node_config; |
214 check_node_config = check_node_config; |
203 }); |
215 }); |
204 services[username] = service; |
216 services[username] = service; |
205 module:add_item("pep-service", { service = service, jid = user_bare }); |
217 local item = { service = service, jid = user_bare } |
|
218 pep_service_items[username] = item; |
|
219 module:add_item("pep-service", item); |
206 return service; |
220 return service; |
207 end |
221 end |
208 |
222 |
209 function handle_pubsub_iq(event) |
223 function handle_pubsub_iq(event) |
210 local origin, stanza = event.origin, event.stanza; |
224 local origin, stanza = event.origin, event.stanza; |