changeset 1521:71af9c272d72

mod_mam_archive: Stopped lying in RSM counts
author syn@syn.im
date Sun, 12 Oct 2014 16:05:48 +0200
parents 2881d532f385
children d4a4ed31567e 54f6158a4915
files mod_mam_archive/mod_mam_archive.lua
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mod_mam_archive/mod_mam_archive.lua	Sun Oct 12 13:24:50 2014 +0200
+++ b/mod_mam_archive/mod_mam_archive.lua	Sun Oct 12 16:05:48 2014 +0200
@@ -247,6 +247,9 @@
     local before, after = qset and qset.before, qset and qset.after;
     if type(before) ~= "string" then before = nil; end
 
+    module:log("debug", "RSM: start=%s, max=%s, before=%s, after=%s",
+        qstart or 'nostart', qmax or 'nomax', before or 'nobefore', after or 'noafter');
+
     -- Load all the data!
     local data, err = archive:find(origin.username, {
         start = qstart; ["end"] = qstart + conversation_interval;
@@ -254,7 +257,6 @@
         limit = qmax;
         before = before; after = after;
         reverse = reverse;
-        total = true;
     });
 
     if not data then
@@ -264,8 +266,7 @@
 
     local chat = reply:tag("chat", {xmlns=xmlns_archive, with=qwith, start=date_format(qstart), version=count});
     local first, last;
-
-    module:log("debug", "Count "..count);
+    local count = 0;
     for id, item, when in data do
         if not getmetatable(item) == st.stanza_mt then
             item = st.deserialize(item);
@@ -277,7 +278,9 @@
         tag:add_child(item:get_child("body")):up();
         if not first then first = id; end
         last = id;
+        count = count+1;
     end
+    module:log("debug", "Count ".. count);
     reply:add_child(rsm.generate{ first = first, last = last, count = count })
 
     origin.send(reply);