# HG changeset patch # User Kim Alvefur # Date 1690032174 -7200 # Node ID 0419de4e4db1de50ae0d536be7fe4c19dc7289f9 # Parent a378937103cb26a50a37f5e39a2d1f703abcdc05 mod_storage_sql: Pass variables as arguments instead of upvalues Probably a workaround for the lack of argument passing when using xpcall in Lua 5.1, no longer relevant. diff -r a378937103cb -r 0419de4e4db1 plugins/mod_storage_sql.lua --- a/plugins/mod_storage_sql.lua Sat Jul 22 14:55:27 2023 +0200 +++ b/plugins/mod_storage_sql.lua Sat Jul 22 15:22:54 2023 +0200 @@ -61,9 +61,8 @@ end local host = module.host; -local user, store; -local function keyval_store_get() +local function keyval_store_get(user, store) local haveany; local result = {}; local select_sql = [[ @@ -88,7 +87,7 @@ return result; end end -local function keyval_store_set(data) +local function keyval_store_set(data, user, store) local delete_sql = [[ DELETE FROM "prosody" WHERE "host"=? AND "user"=? AND "store"=? @@ -123,19 +122,15 @@ local keyval_store = {}; keyval_store.__index = keyval_store; function keyval_store:get(username) - user, store = username, self.store; - local ok, result = engine:transaction(keyval_store_get); + local ok, result = engine:transaction(keyval_store_get, username, self.store); if not ok then - module:log("error", "Unable to read from database %s store for %s: %s", store, username or "", result); + module:log("error", "Unable to read from database %s store for %s: %s", self.store, username or "", result); return nil, result; end return result; end function keyval_store:set(username, data) - user,store = username,self.store; - return engine:transaction(function() - return keyval_store_set(data); - end); + return engine:transaction(keyval_store_set, data, username, self.store); end function keyval_store:users() local ok, result = engine:transaction(function()