Mercurial > prosody-hg
comparison plugins/mod_console.lua @ 3557:58ab7e61d220
mod_console: Keep global variable assignments sandboxed by default.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Thu, 04 Nov 2010 18:44:57 +0500 |
| parents | bc139431830b |
| children | 8b436cc88c0e |
comparison
equal
deleted
inserted
replaced
| 3556:d00fc909296e | 3557:58ab7e61d220 |
|---|---|
| 25 local default_env_mt = { __index = def_env }; | 25 local default_env_mt = { __index = def_env }; |
| 26 | 26 |
| 27 prosody.console = { commands = commands, env = def_env }; | 27 prosody.console = { commands = commands, env = def_env }; |
| 28 | 28 |
| 29 local function redirect_output(_G, session) | 29 local function redirect_output(_G, session) |
| 30 local env = setmetatable({ print = session.print }, { __index = function (t, k) return rawget(_G, k); end, __newindex = function (t, k, v) rawset(_G, k, v); end }); | 30 local env = setmetatable({ print = session.print }, { __index = function (t, k) return rawget(_G, k); end }); |
| 31 env.dofile = function(name) | 31 env.dofile = function(name) |
| 32 local f, err = loadfile(name); | 32 local f, err = loadfile(name); |
| 33 if not f then return f, err; end | 33 if not f then return f, err; end |
| 34 return setfenv(f, env)(); | 34 return setfenv(f, env)(); |
| 35 end; | 35 end; |
