95 lines
3.0 KiB
Diff
95 lines
3.0 KiB
Diff
diff --git a/src/lua/linit.c b/src/lua/linit.c
|
|
index 69808f84..83b89555 100644
|
|
--- a/src/lua/linit.c
|
|
+++ b/src/lua/linit.c
|
|
@@ -50,6 +50,9 @@ static const luaL_Reg loadedlibs[] = {
|
|
{LUA_MATHLIBNAME, luaopen_math},
|
|
{LUA_UTF8LIBNAME, luaopen_utf8},
|
|
{LUA_DBLIBNAME, luaopen_debug},
|
|
+ /****** Pi-hole modification ******/
|
|
+ {LUA_PIHOLELIBNAME, luaopen_pihole},
|
|
+ /**********************************/
|
|
{NULL, NULL}
|
|
};
|
|
|
|
diff --git a/src/lua/lua.c b/src/lua/lua.c
|
|
index 454ce12f..a363925c 100644
|
|
--- a/src/lua/lua.c
|
|
+++ b/src/lua/lua.c
|
|
@@ -20,6 +20,10 @@
|
|
#include "lauxlib.h"
|
|
#include "lualib.h"
|
|
|
|
+/** Pi-hole modification **/
|
|
+#include "ftl_lua.h"
|
|
+/**************************/
|
|
+
|
|
|
|
#if !defined(LUA_PROGNAME)
|
|
#define LUA_PROGNAME "lua"
|
|
@@ -190,7 +194,9 @@ static int dostring (lua_State *L, const char *s, const char *name) {
|
|
/*
|
|
** Receives 'globname[=modname]' and runs 'globname = require(modname)'.
|
|
*/
|
|
-static int dolibrary (lua_State *L, char *globname) {
|
|
+/************** Pi-hole modification ***************/
|
|
+int dolibrary (lua_State *L, char *globname) {
|
|
+/***************************************************/
|
|
int status;
|
|
char *modname = strchr(globname, '=');
|
|
if (modname == NULL) /* no explicit name? */
|
|
@@ -597,6 +599,12 @@ static int pmain (lua_State *L) {
|
|
if (handle_luainit(L) != LUA_OK) /* run LUA_INIT */
|
|
return 0; /* error running LUA_INIT */
|
|
}
|
|
+
|
|
+ /************** Pi-hole modification ***************/
|
|
+ // Load and enable libraries bundled with Pi-hole
|
|
+ ftl_lua_init(L);
|
|
+ /***************************************************/
|
|
+
|
|
if (!runargs(L, argv, optlim)) /* execute arguments -e and -l */
|
|
return 0; /* something failed */
|
|
if (script > 0) { /* execute main script (if there is one) */
|
|
@@ -616,7 +622,9 @@ static int pmain (lua_State *L) {
|
|
}
|
|
|
|
|
|
-int main (int argc, char **argv) {
|
|
+/******* Pi-hole modification ********/
|
|
+int lua_main (int argc, char **argv) {
|
|
+/*************************************/
|
|
int status, result;
|
|
lua_State *L = luaL_newstate(); /* create state */
|
|
if (L == NULL) {
|
|
diff --git a/src/lua/luac.c b/src/lua/luac.c
|
|
index 56ddc414..d7d219e4 100644
|
|
--- a/src/lua/luac.c
|
|
+++ b/src/lua/luac.c
|
|
@@ -194,7 +194,9 @@ static int pmain(lua_State* L)
|
|
return 0;
|
|
}
|
|
|
|
-int main(int argc, char* argv[])
|
|
+/******* Pi-hole modification ********/
|
|
+int luac_main(int argc, char* argv[])
|
|
+/*************************************/
|
|
{
|
|
lua_State* L;
|
|
int i=doargs(argc,argv);
|
|
diff --git a/src/lua/lualib.h b/src/lua/lualib.h
|
|
index eb08b530..e6dfbf6c 100644
|
|
--- a/src/lua/lualib.h
|
|
+++ b/src/lua/lualib.h
|
|
@@ -44,6 +44,10 @@ LUAMOD_API int (luaopen_debug) (lua_State *L);
|
|
#define LUA_LOADLIBNAME "package"
|
|
LUAMOD_API int (luaopen_package) (lua_State *L);
|
|
|
|
+/************ Pi-hole modification *************/
|
|
+#define LUA_PIHOLELIBNAME "pihole"
|
|
+LUAMOD_API int (luaopen_pihole) (lua_State *L);
|
|
+/***********************************************/
|
|
|
|
/* open all previous libraries */
|
|
LUALIB_API void (luaL_openlibs) (lua_State *L);
|