aboutsummaryrefslogtreecommitdiff
path: root/src/script/cpp_api/s_security.h
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2021-12-17 19:04:46 +0100
committersfan5 <sfan5@live.de>2021-12-18 20:37:13 +0100
commitb2409b14d0682655363c1b3b3b6bafbaa7e7c1bf (patch)
tree03cb1bac4e9bbad1490c44b8ec2e361cb8d7ec27 /src/script/cpp_api/s_security.h
parentf4054595482bf4573075f45d3ca56076a0d6113e (diff)
downloadminetest-b2409b14d0682655363c1b3b3b6bafbaa7e7c1bf.tar.gz
minetest-b2409b14d0682655363c1b3b3b6bafbaa7e7c1bf.tar.bz2
minetest-b2409b14d0682655363c1b3b3b6bafbaa7e7c1bf.zip
Refactor trusted mod checking code
Diffstat (limited to 'src/script/cpp_api/s_security.h')
-rw-r--r--src/script/cpp_api/s_security.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/script/cpp_api/s_security.h b/src/script/cpp_api/s_security.h
index 73e763548..619bf824f 100644
--- a/src/script/cpp_api/s_security.h
+++ b/src/script/cpp_api/s_security.h
@@ -40,11 +40,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class ScriptApiSecurity : virtual public ScriptApiBase
{
public:
- int getThread(lua_State *L);
- // creates an empty Lua environment
- void createEmptyEnv(lua_State *L);
- // sets the enviroment to the table thats on top of the stack
- void setLuaEnv(lua_State *L, int thread);
// Sets up security on the ScriptApi's Lua state
void initializeSecurity();
void initializeSecurityClient();
@@ -57,8 +52,17 @@ public:
// Checks if mods are allowed to read (and optionally write) to the path
static bool checkPath(lua_State *L, const char *path, bool write_required,
bool *write_allowed=NULL);
+ // Check if mod is whitelisted in the given setting
+ // This additionally checks that the mod's main file scope is executing.
+ static bool checkWhitelisted(lua_State *L, const std::string &setting);
private:
+ int getThread(lua_State *L);
+ // sets the enviroment to the table thats on top of the stack
+ void setLuaEnv(lua_State *L, int thread);
+ // creates an empty Lua environment
+ void createEmptyEnv(lua_State *L);
+
// Syntax: "sl_" <Library name or 'g' (global)> '_' <Function name>
// (sl stands for Secure Lua)