Software /
code /
prosody
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 |