Comparison

util/datamanager.lua @ 3722:f15b6ed967b7

util.datamanager: When failing to load a list file, and the file exists, log an error, and return nil, error.
author Waqas Hussain <waqas20@gmail.com>
date Fri, 10 Dec 2010 00:21:09 +0500
parent 3108:df0df92dd58a
child 3723:72a917d910a4
comparison
equal deleted inserted replaced
3721:bd5c6c333ee7 3722:f15b6ed967b7
202 end 202 end
203 203
204 function list_load(username, host, datastore) 204 function list_load(username, host, datastore)
205 local data, ret = loadfile(getpath(username, host, datastore, "list")); 205 local data, ret = loadfile(getpath(username, host, datastore, "list"));
206 if not data then 206 if not data then
207 log("debug", "Failed to load "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil")); 207 local mode = lfs.attributes(getpath(username, host, datastore, "list"), "mode");
208 return nil; 208 if not mode then
209 log("debug", "Failed to load "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil"));
210 return nil;
211 else -- file exists, but can't be read
212 -- TODO more detailed error checking and logging?
213 log("error", "Failed to load "..datastore.." storage ('"..ret.."') for user: "..(username or "nil").."@"..(host or "nil"));
214 return nil, "Error reading storage";
215 end
209 end 216 end
210 local items = {}; 217 local items = {};
211 setfenv(data, {item = function(i) t_insert(items, i); end}); 218 setfenv(data, {item = function(i) t_insert(items, i); end});
212 local success, ret = pcall(data); 219 local success, ret = pcall(data);
213 if not success then 220 if not success then