Comparison

util/datamanager.lua @ 1462:44780b856ce7

datamanager: Fixed incorrect callback result checking
author Waqas Hussain <waqas20@gmail.com>
date Thu, 02 Jul 2009 21:34:45 +0500
parent 1381:46a58df8557d
child 1523:841d61be198f
comparison
equal deleted inserted replaced
1461:51f0202b0868 1462:44780b856ce7
60 end 60 end
61 61
62 local function callback(username, host, datastore, data) 62 local function callback(username, host, datastore, data)
63 for _, f in ipairs(callbacks) do 63 for _, f in ipairs(callbacks) do
64 username, host, datastore, data = f(username, host, datastore, data); 64 username, host, datastore, data = f(username, host, datastore, data);
65 if not username then break; end 65 if username == false then break; end
66 end 66 end
67 67
68 return username, host, datastore, data; 68 return username, host, datastore, data;
69 end 69 end
70 function add_callback(func) 70 function add_callback(func)
121 if not data then 121 if not data then
122 data = {}; 122 data = {};
123 end 123 end
124 124
125 username, host, datastore, data = callback(username, host, datastore, data); 125 username, host, datastore, data = callback(username, host, datastore, data);
126 if not username then 126 if username == false then
127 return true; -- Don't save this data at all 127 return true; -- Don't save this data at all
128 end 128 end
129 129
130 -- save the datastore 130 -- save the datastore
131 local f, msg = io_open(getpath(username, host, datastore, nil, true), "w+"); 131 local f, msg = io_open(getpath(username, host, datastore, nil, true), "w+");
145 return true; 145 return true;
146 end 146 end
147 147
148 function list_append(username, host, datastore, data) 148 function list_append(username, host, datastore, data)
149 if not data then return; end 149 if not data then return; end
150 if callback and callback(username, host, datastore) then return true; end 150 if callback(username, host, datastore) == false then return true; end
151 -- save the datastore 151 -- save the datastore
152 local f, msg = io_open(getpath(username, host, datastore, "list", true), "a+"); 152 local f, msg = io_open(getpath(username, host, datastore, "list", true), "a+");
153 if not f then 153 if not f then
154 log("error", "Unable to write to "..datastore.." storage ('"..msg.."') for user: "..(username or "nil").."@"..(host or "nil")); 154 log("error", "Unable to write to "..datastore.." storage ('"..msg.."') for user: "..(username or "nil").."@"..(host or "nil"));
155 return; 155 return;
163 163
164 function list_store(username, host, datastore, data) 164 function list_store(username, host, datastore, data)
165 if not data then 165 if not data then
166 data = {}; 166 data = {};
167 end 167 end
168 if callback and callback(username, host, datastore) then return true; end 168 if callback(username, host, datastore) == false then return true; end
169 -- save the datastore 169 -- save the datastore
170 local f, msg = io_open(getpath(username, host, datastore, "list", true), "w+"); 170 local f, msg = io_open(getpath(username, host, datastore, "list", true), "w+");
171 if not f then 171 if not f then
172 log("error", "Unable to write to "..datastore.." storage ('"..msg.."') for user: "..(username or "nil").."@"..(host or "nil")); 172 log("error", "Unable to write to "..datastore.." storage ('"..msg.."') for user: "..(username or "nil").."@"..(host or "nil"));
173 return; 173 return;