Remove need for secure.enable_security (#7)

With changes in lua-matrix mod now works with only secure.trusted_mods
This commit is contained in:
Jon Neverland 2017-08-08 12:33:33 +02:00 committed by texmex
parent fab8a5a729
commit b54f0df57b
3 changed files with 16 additions and 5 deletions

View File

@ -2,7 +2,7 @@
# Matrix mod for Minetest # Matrix mod for Minetest
This mod creates a bridge between a [Matrix](https://matrix.org) channel and the in-game chat. This mod creates a bridge between a [Matrix](https://matrix.org) channel and the in-game chat.
The code is shamelessly based on the [irc](https://github.com/minetest-mods/irc) mod and examples from [lua-matrix](https://github.com/aperezdc/lua-matrix). The code is shamelessly based on the [irc](https://github.com/minetest-mods/irc) mod and examples from [lua-matrix](https://github.com/aperezdc/lua-matrix).
@ -20,6 +20,8 @@ luarocks-5.1 install lua-cjson
brew install openssl brew install openssl
luarocks-5.1 install cqueues CRYPTO_DIR=/usr/local/opt/openssl/ OPENSSL_DIR=/usr/local/opt/openssl #https://github.com/wahern/cqueues/wiki/Installation-on-OSX#via-brew luarocks-5.1 install cqueues CRYPTO_DIR=/usr/local/opt/openssl/ OPENSSL_DIR=/usr/local/opt/openssl #https://github.com/wahern/cqueues/wiki/Installation-on-OSX#via-brew
luarocks-5.1 install luaossl CRYPTO_DIR=/usr/local/opt/openssl/ OPENSSL_DIR=/usr/local/opt/openssl luarocks-5.1 install luaossl CRYPTO_DIR=/usr/local/opt/openssl/ OPENSSL_DIR=/usr/local/opt/openssl
luarocks-5.1 install luasocket
luarocks-5.1 install luasec OPENSSL_DIR=/usr/local/opt/openssl
export MATRIX_API_HTTP_CLIENT=luasocket export MATRIX_API_HTTP_CLIENT=luasocket
``` ```
@ -30,15 +32,17 @@ Tested on 16.04.
```bash ```bash
apt-get install lua5.1 luarocks lua-sec apt-get install lua5.1 luarocks lua-sec
luarocks install lua-cjson luarocks install lua-cjson
luarocks install luasocket
luarocks install luasec
export MATRIX_API_HTTP_CLIENT=luasocket export MATRIX_API_HTTP_CLIENT=luasocket
``` ```
You might need to prepend `sudo` to first and second commands. You might need to prepend `sudo` to first and second commands.
For the moment you need to disabled mod security for lua-matrix to work. This will hopefully change. For the moment you need to add `matrix` to `secure.trusted_mods` for lua-matrix to work. This will hopefully change.
``` ```
secure.enable_security = false secure.trusted_mods = matrix
``` ```
[wiki]: https://wiki.minetest.net/Installing_mods [wiki]: https://wiki.minetest.net/Installing_mods

View File

@ -8,7 +8,7 @@ local ie, req_ie = _G, minetest.request_insecure_environment
if req_ie then ie = req_ie() end if req_ie then ie = req_ie() end
if not ie then if not ie then
error("The Matrix mod requires access to insecure functions in order ".. error("The Matrix mod requires access to insecure functions in order "..
"to work. Please disable mod security. This will hopefully change.") "to work. Please add matrix to secure.trusted_mods.")
end end
ie.package.path = ie.package.path =
@ -29,6 +29,10 @@ local function eprintf(fmt, ...)
minetest.log("info", fmt:format(...)) minetest.log("info", fmt:format(...))
end end
-- Temporarily set require so that LuaIRC can access it
local old_require = require
require = ie.require
local client = require("matrix").client(matrix.config.server..":"..matrix.config.port) local client = require("matrix").client(matrix.config.server..":"..matrix.config.port)
local start_ts = os.time() * 1000 local start_ts = os.time() * 1000
@ -139,3 +143,6 @@ function matrix.say(message)
end end
end end
end end
-- Restore old (safe) functions
require = old_require

@ -1 +1 @@
Subproject commit 2946b558101a22dd0770a2548f938ada86475256 Subproject commit 151355a7904640b98eef6dd59e43adefc0d178ea