diff options
author | Matthew Wild <mwild1@gmail.com> | 2012-07-31 23:07:02 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2012-07-31 23:07:02 +0100 |
commit | d4d93a75bbf30b598c71f490f77262e9a4c79b2d (patch) | |
tree | 4301677c927a8fa3e7991312c13ee59ab0003a38 /util | |
parent | 4b640bb161bdcaf092c1445700b0a3b5a7c89b6f (diff) | |
parent | 2161f2e88c3b8b882fc30ec49609d4262d18e380 (diff) | |
download | prosody-d4d93a75bbf30b598c71f490f77262e9a4c79b2d.tar.gz prosody-d4d93a75bbf30b598c71f490f77262e9a4c79b2d.zip |
Merge Waqas<>Zash
Diffstat (limited to 'util')
-rw-r--r-- | util/datamanager.lua | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/util/datamanager.lua b/util/datamanager.lua index c8b905ac..9f7600ee 100644 --- a/util/datamanager.lua +++ b/util/datamanager.lua @@ -171,6 +171,18 @@ local function atomic_store(filename, data) return nil, msg; end +if prosody.platform ~= "posix" then + -- os.rename does not overwrite existing files on Windows + -- TODO We could use Transactional NTFS on Vista and above + function atomic_store(filename, data) + local f, err = io_open(filename, "w"); + if not f then return f, err; end + local ok, msg = f:write(data); + if not ok then f:close(); return ok, msg; end + return f:close(); + end +end + function store(username, host, datastore, data) if not data then data = {}; |