# HG changeset patch # User Kim Alvefur # Date 1471988397 -7200 # Node ID 4786bf0a93341101ed3fd23cbbd268fe0bf475fd # Parent aa984980a4dcbd918a0ade7daf80fb1b104facf2 mod_storage_xmlarchive: Determine if a message is the first of day by checking if the list file exists before diff -r aa984980a4dc -r 4786bf0a9334 mod_storage_xmlarchive/mod_storage_xmlarchive.lua --- a/mod_storage_xmlarchive/mod_storage_xmlarchive.lua Tue Aug 23 17:54:00 2016 +0200 +++ b/mod_storage_xmlarchive/mod_storage_xmlarchive.lua Tue Aug 23 23:39:57 2016 +0200 @@ -5,6 +5,7 @@ -- -- luacheck: ignore unused self +local lfs = require "lfs"; local dm = require "core.storagemanager".olddm; local hmac_sha256 = require"util.hashes".hmac_sha256; local st = require"util.stanza"; @@ -37,13 +38,14 @@ return nil, err; end + -- If the day-file is missing then we need to add it to the list of days + local first_of_day = not lfs.attributes(dm.getpath(username .. "@" .. day, module.host, self.store, "list")); + local offset = ok and err; local id = day .. "-" .. hmac_sha256(username.."@"..day.."+"..offset, data, true):sub(-16); ok, err = dm.list_append(username.."@"..day, module.host, self.store, { id = id, when = dt.datetime(when), with = with, offset = offset, length = #data }); - if offset == 0 then - -- means the message is at the beginnig of the file, so it's a new day - -- so we add this new day to the "index" + if ok and first_of_day then ok, err = dm.list_append(username, module.host, self.store, day); end if not ok then