Mercurial > prosody-modules
comparison mod_mam/mod_mam.lua @ 2724:9f17d0f28d77
mod_mam: Don't ask the storage backend to count all items when expiry is disabled
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 26 Apr 2017 11:46:22 +0200 |
| parents | ff1f7e61517f |
| children | 210c3a7644cb |
comparison
equal
deleted
inserted
replaced
| 2723:ec02ee02a04b | 2724:9f17d0f28d77 |
|---|---|
| 53 end | 53 end |
| 54 module:log("debug", "See https://prosody.im/doc/storage and https://prosody.im/doc/archiving for more information"); | 54 module:log("debug", "See https://prosody.im/doc/storage and https://prosody.im/doc/archiving for more information"); |
| 55 module:log("info", "Using in-memory fallback archive driver"); | 55 module:log("info", "Using in-memory fallback archive driver"); |
| 56 archive = module:require "fallback_archive"; | 56 archive = module:require "fallback_archive"; |
| 57 end | 57 end |
| 58 | |
| 59 local use_total = true; | |
| 58 | 60 |
| 59 local cleanup; | 61 local cleanup; |
| 60 | 62 |
| 61 -- Handle prefs. | 63 -- Handle prefs. |
| 62 local function handle_prefs(event) | 64 local function handle_prefs(event) |
| 152 start = qstart; ["end"] = qend; -- Time range | 154 start = qstart; ["end"] = qend; -- Time range |
| 153 with = qwith; | 155 with = qwith; |
| 154 limit = qmax + 1; | 156 limit = qmax + 1; |
| 155 before = before; after = after; | 157 before = before; after = after; |
| 156 reverse = reverse; | 158 reverse = reverse; |
| 157 total = true; | 159 total = get_total; |
| 158 }); | 160 }); |
| 159 | 161 |
| 160 if not data then | 162 if not data then |
| 161 origin.send(st.error_reply(stanza, "cancel", "internal-server-error", err)); | 163 origin.send(st.error_reply(stanza, "cancel", "internal-server-error", err)); |
| 162 return true; | 164 return true; |
| 381 end | 383 end |
| 382 cleanup[user] = nil; | 384 cleanup[user] = nil; |
| 383 end | 385 end |
| 384 return math.random(cleanup_interval, cleanup_interval * 2); | 386 return math.random(cleanup_interval, cleanup_interval * 2); |
| 385 end); | 387 end); |
| 388 else | |
| 389 -- Don't ask the backend to count the potentially unbounded number of items, | |
| 390 -- it'll get slow. | |
| 391 use_total = false; | |
| 386 end | 392 end |
| 387 | 393 |
| 388 -- Stanzas sent by local clients | 394 -- Stanzas sent by local clients |
| 389 module:hook("pre-message/bare", c2s_message_handler, 0); | 395 module:hook("pre-message/bare", c2s_message_handler, 0); |
| 390 module:hook("pre-message/full", c2s_message_handler, 0); | 396 module:hook("pre-message/full", c2s_message_handler, 0); |
