Mercurial > prosody-hg
comparison plugins/storage/sqlbasic.lib.lua @ 5021:85b2689dbcfe
Eliminate direct setfenv usage
| author | Florian Zeitz <florob@babelmonkeys.de> |
|---|---|
| date | Fri, 08 Jun 2012 05:04:38 +0200 |
| parents | c5882e2e12b5 |
| children |
comparison
equal
deleted
inserted
replaced
| 5020:ef1eb65acbba | 5021:85b2689dbcfe |
|---|---|
| 1 | 1 |
| 2 -- Basic SQL driver | 2 -- Basic SQL driver |
| 3 -- This driver stores data as simple key-values | 3 -- This driver stores data as simple key-values |
| 4 | 4 |
| 5 local ser = require "util.serialization".serialize; | 5 local ser = require "util.serialization".serialize; |
| 6 local envload = require "util.envload".envload; | |
| 6 local deser = function(data) | 7 local deser = function(data) |
| 7 module:log("debug", "deser: %s", tostring(data)); | 8 module:log("debug", "deser: %s", tostring(data)); |
| 8 if not data then return nil; end | 9 if not data then return nil; end |
| 9 local f = loadstring("return "..data); | 10 local f = envload("return "..data, nil, {}); |
| 10 if not f then return nil; end | 11 if not f then return nil; end |
| 11 setfenv(f, {}); | |
| 12 local s, d = pcall(f); | 12 local s, d = pcall(f); |
| 13 if not s then return nil; end | 13 if not s then return nil; end |
| 14 return d; | 14 return d; |
| 15 end; | 15 end; |
| 16 | 16 |
