trunk
changeset 5066:4be7093edde9
util.datamanager: Try to open in read+write mode, then retry with write mode if that fails (usually because it doesn't exist)
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Tue, 31 Jul 2012 23:34:11 +0200 |
| parents | 1e44678b5de2 |
| children | 7db1056c63a9 |
| files | util/datamanager.lua |
| diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line diff
1.1 --- a/util/datamanager.lua Tue Jul 31 08:23:55 2012 +0200 1.2 +++ b/util/datamanager.lua Tue Jul 31 23:34:11 2012 +0200 1.3 @@ -201,7 +201,10 @@ 1.4 if not data then return; end 1.5 if callback(username, host, datastore) == false then return true; end 1.6 -- save the datastore 1.7 - local f, msg = io_open(getpath(username, host, datastore, "list", true), "a"); 1.8 + local f, msg = io_open(getpath(username, host, datastore, "list", true), "r+"); 1.9 + if not f then 1.10 + f, msg = io_open(getpath(username, host, datastore, "list", true), "w"); 1.11 + end 1.12 if not f then 1.13 log("error", "Unable to write to %s storage ('%s') for user: %s@%s", datastore, msg, username or "nil", host or "nil"); 1.14 return;
