Apply Pi-hole Lua patches

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER 2023-04-30 21:11:51 +02:00
parent 08a8a11a51
commit 866ca4b657
No known key found for this signature in database
GPG Key ID: 00135ACBD90B28DD
5 changed files with 28 additions and 5 deletions

View File

@ -48,9 +48,9 @@ index 454ce12f..a363925c 100644
+ ftl_lua_init(L); + ftl_lua_init(L);
+ /***************************************************/ + /***************************************************/
+ +
if (!runargs(L, argv, script)) /* execute arguments -e and -l */ if (!runargs(L, argv, optlim)) /* execute arguments -e and -l */
return 0; /* something failed */ return 0; /* something failed */
if (script < argc && /* execute main script (if there is one) */ if (script > 0) { /* execute main script (if there is one) */
@@ -616,7 +622,9 @@ static int pmain (lua_State *L) { @@ -616,7 +622,9 @@ static int pmain (lua_State *L) {
} }

View File

@ -50,6 +50,9 @@ static const luaL_Reg loadedlibs[] = {
{LUA_MATHLIBNAME, luaopen_math}, {LUA_MATHLIBNAME, luaopen_math},
{LUA_UTF8LIBNAME, luaopen_utf8}, {LUA_UTF8LIBNAME, luaopen_utf8},
{LUA_DBLIBNAME, luaopen_debug}, {LUA_DBLIBNAME, luaopen_debug},
/****** Pi-hole modification ******/
{LUA_PIHOLELIBNAME, luaopen_pihole},
/**********************************/
{NULL, NULL} {NULL, NULL}
}; };

View File

@ -20,6 +20,10 @@
#include "lauxlib.h" #include "lauxlib.h"
#include "lualib.h" #include "lualib.h"
/** Pi-hole modification **/
#include "ftl_lua.h"
/**************************/
#if !defined(LUA_PROGNAME) #if !defined(LUA_PROGNAME)
#define LUA_PROGNAME "lua" #define LUA_PROGNAME "lua"
@ -211,7 +215,9 @@ static int dostring (lua_State *L, const char *s, const char *name) {
/* /*
** Receives 'globname[=modname]' and runs 'globname = require(modname)'. ** 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; int status;
char *modname = strchr(globname, '='); char *modname = strchr(globname, '=');
if (modname == NULL) /* no explicit name? */ if (modname == NULL) /* no explicit name? */
@ -639,6 +645,12 @@ static int pmain (lua_State *L) {
if (handle_luainit(L) != LUA_OK) /* run LUA_INIT */ if (handle_luainit(L) != LUA_OK) /* run LUA_INIT */
return 0; /* error running 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 */ if (!runargs(L, argv, optlim)) /* execute arguments -e and -l */
return 0; /* something failed */ return 0; /* something failed */
if (script > 0) { /* execute main script (if there is one) */ if (script > 0) { /* execute main script (if there is one) */
@ -659,7 +671,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; int status, result;
lua_State *L = luaL_newstate(); /* create state */ lua_State *L = luaL_newstate(); /* create state */
if (L == NULL) { if (L == NULL) {

View File

@ -193,7 +193,9 @@ static int pmain(lua_State* L)
return 0; return 0;
} }
int main(int argc, char* argv[]) /******* Pi-hole modification ********/
int luac_main(int argc, char* argv[])
/*************************************/
{ {
lua_State* L; lua_State* L;
int i=doargs(argc,argv); int i=doargs(argc,argv);

View File

@ -44,6 +44,10 @@ LUAMOD_API int (luaopen_debug) (lua_State *L);
#define LUA_LOADLIBNAME "package" #define LUA_LOADLIBNAME "package"
LUAMOD_API int (luaopen_package) (lua_State *L); 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 */ /* open all previous libraries */
LUALIB_API void (luaL_openlibs) (lua_State *L); LUALIB_API void (luaL_openlibs) (lua_State *L);