Mercurial > prosody-modules
diff mod_storage_xmlarchive/mod_storage_xmlarchive.lua @ 1742:ec50cecc9318
mod_storage_xmlarchive: Store timestamps in text form, I don't trust numeric timestamps in Lua
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 18 May 2015 02:46:41 +0200 |
parents | 07ceaf5f6f0d |
children | 3f3689a16133 |
line wrap: on
line diff
--- a/mod_storage_xmlarchive/mod_storage_xmlarchive.lua Mon May 18 02:45:49 2015 +0200 +++ b/mod_storage_xmlarchive/mod_storage_xmlarchive.lua Mon May 18 02:46:41 2015 +0200 @@ -50,7 +50,7 @@ ok, err = f:close(); if not ok then return nil, err; end 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 = when, with = with, offset = offset, length = #data }); + ok, err = dm.list_append(username.."@"..day, module.host, self.store, { id = id, when = dt.datetime(when), with = with, offset = offset, length = #data }); if not ok then return nil, err; end return id; end @@ -133,6 +133,13 @@ for i = first_item, last_item, step do local item = items[i]; local i_when, i_with = item.when, item.with; + if type(i_when) == "string" then + i_when = dt.parse(i_when); + end + if type(i_when) ~= "number" then + module:log("warn", "data[%q][%d].when is invalid", dates[d], i); + break; + end if not item then module:log("warn", "data[%q][%d] is nil", dates[d], i); break;