Software / code / prosody
Changeset
6994:507301531cf5
util.datamanager: In append() collect status when closing file handle as it may fail (eg the implied flush)
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 11 Dec 2015 20:13:37 +0100 |
| parents | 6993:dc0c6b8dc638 |
| children | 6995:807b0b2ee545 |
| files | util/datamanager.lua |
| diffstat | 1 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/util/datamanager.lua Fri Dec 11 20:11:48 2015 +0100 +++ b/util/datamanager.lua Fri Dec 11 20:13:37 2015 +0100 @@ -210,9 +210,10 @@ end local function append(username, host, datastore, ext, data) - local f, msg = io_open(getpath(username, host, datastore, ext, true), "r+"); + local filename = getpath(username, host, datastore, ext, true); + local f, msg = io_open(filename, "r+"); if not f then - f, msg = io_open(getpath(username, host, datastore, ext, true), "w"); + f, msg = io_open(filename, "w"); end if not f then return nil, msg; @@ -225,7 +226,12 @@ else return ok, msg; end - f:close(); + + ok, msg = f:close(); + if not ok then + return ok, msg; + end + return true; end