You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rj...@apache.org on 2017/07/04 20:35:06 UTC

svn commit: r1800815 - in /httpd/httpd/trunk/modules/lua: README lua_config.c lua_request.c mod_lua.c mod_lua.h

Author: rjung
Date: Tue Jul  4 20:35:06 2017
New Revision: 1800815

URL: http://svn.apache.org/viewvc?rev=1800815&view=rev
Log:
More mod_lua compat for Lua 5.1, 5.2, 5.3.

One last use of luaL_register() with a non-NULL
"name" argument remaining.

Not tested yet.

Modified:
    httpd/httpd/trunk/modules/lua/README
    httpd/httpd/trunk/modules/lua/lua_config.c
    httpd/httpd/trunk/modules/lua/lua_request.c
    httpd/httpd/trunk/modules/lua/mod_lua.c
    httpd/httpd/trunk/modules/lua/mod_lua.h

Modified: httpd/httpd/trunk/modules/lua/README
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/README?rev=1800815&r1=1800814&r2=1800815&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/lua/README (original)
+++ httpd/httpd/trunk/modules/lua/README Tue Jul  4 20:35:06 2017
@@ -1,7 +1,6 @@
 -*- mode:org -*-
 * Requirements:
-** lua 5.1, 5.2 ( http://www.lua.org/ ) or LuaJIT 2.x ( http://www.luajit.org/ )
-** Does NOT work with Lua 5.3 yet
+** lua 5.1, 5.2, 5.3 ( http://www.lua.org/ ) or LuaJIT 2.x ( http://www.luajit.org/ )
 ** Apache HTTPD 2.4 ( http://httpd.apache.org/ ) or higher
 
 * Documentation
@@ -24,6 +23,9 @@
 ** TODO: document or remove block sections
 ** TODO: test per-dir behavior of block sections
 ** TODO: Suppress internal details (fs path to scripts, etc) in error responses
+** TODO: Check whether we can tighten the mode flag in lua_load(),
+         luaL_loadfile() an dluaL_loadbuffer() from NULL (="bt")
+         to e.g. "t".
     
 * License
   Apache License, Version 2.0,

Modified: httpd/httpd/trunk/modules/lua/lua_config.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/lua_config.c?rev=1800815&r1=1800814&r2=1800815&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/lua/lua_config.c (original)
+++ httpd/httpd/trunk/modules/lua/lua_config.c Tue Jul  4 20:35:06 2017
@@ -265,13 +265,13 @@ void ap_lua_load_config_lmodule(lua_Stat
     lua_pushvalue(L, -1);
 
     lua_setfield(L, -2, "__index");
-    luaL_register(L, NULL, cfg_methods);        /* [metatable] */
+    luaL_setfuncs(L, cfg_methods);              /* [metatable] */
 
 
     luaL_newmetatable(L, "Apache2.CommandParameters");
     lua_pushvalue(L, -1);
 
     lua_setfield(L, -2, "__index");
-    luaL_register(L, NULL, cmd_methods);        /* [metatable] */
+    luaL_setfuncs(L, cmd_methods);              /* [metatable] */
 
 }

Modified: httpd/httpd/trunk/modules/lua/lua_request.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/lua_request.c?rev=1800815&r1=1800814&r2=1800815&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/lua/lua_request.c (original)
+++ httpd/httpd/trunk/modules/lua/lua_request.c Tue Jul  4 20:35:06 2017
@@ -2959,7 +2959,7 @@ void ap_lua_load_request_lmodule(lua_Sta
     lua_pushvalue(L, -1);
 
     lua_setfield(L, -2, "__index");
-    luaL_register(L, NULL, request_methods);    /* [metatable] */
+    luaL_setfuncs(L, request_methods);          /* [metatable] */
 
     lua_pop(L, 2);
 
@@ -2967,7 +2967,7 @@ void ap_lua_load_request_lmodule(lua_Sta
     lua_pushvalue(L, -1);
 
     lua_setfield(L, -2, "__index");
-    luaL_register(L, NULL, connection_methods); /* [metatable] */
+    luaL_setfuncs(L, connection_methods);       /* [metatable] */
 
     lua_pop(L, 2);
 
@@ -2975,7 +2975,7 @@ void ap_lua_load_request_lmodule(lua_Sta
     lua_pushvalue(L, -1);
 
     lua_setfield(L, -2, "__index");
-    luaL_register(L, NULL, server_methods);     /* [metatable] */
+    luaL_setfuncs(L, server_methods);           /* [metatable] */
 
     lua_pop(L, 2);
 

Modified: httpd/httpd/trunk/modules/lua/mod_lua.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/mod_lua.c?rev=1800815&r1=1800814&r2=1800815&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/lua/mod_lua.c (original)
+++ httpd/httpd/trunk/modules/lua/mod_lua.c Tue Jul  4 20:35:06 2017
@@ -1080,11 +1080,7 @@ static const char *register_named_block_
         else {
             luaL_Buffer b;
             luaL_buffinit(lvm, &b);
-#if LUA_VERSION_NUM >= 503
-            lua_dump(lvm, ldump_writer, &b, 0);
-#else
             lua_dump(lvm, ldump_writer, &b);
-#endif
             luaL_pushresult(&b);
             spec->bytecode_len = lua_rawlen(lvm, -1);
             spec->bytecode = apr_pstrmemdup(cmd->pool, lua_tostring(lvm, -1),

Modified: httpd/httpd/trunk/modules/lua/mod_lua.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/lua/mod_lua.h?rev=1800815&r1=1800814&r2=1800815&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/lua/mod_lua.h (original)
+++ httpd/httpd/trunk/modules/lua/mod_lua.h Tue Jul  4 20:35:06 2017
@@ -41,23 +41,23 @@
 #include "apr_hooks.h"
 #include "apr_reslist.h"
 
-/* Allow for Lua 5.2 backwards compatibility */
-#define LUA_COMPAT_ALL
-/* Allow for Lua 5.3 backwards compatibility */
-#define LUA_COMPAT_5_2
-#define LUA_COMPAT_5_1
-#define LUA_COMPAT_MODULE
-
 #include "lua.h"
 #include "lauxlib.h"
 #include "lualib.h"
 
 #if LUA_VERSION_NUM > 501
 /* Load mode for lua_load() */
-#define lua_load(a,b,c,d) lua_load(a,b,c,d,NULL)
-#define lua_resume(a,b)   lua_resume(a, NULL, b)
+#define lua_load(a,b,c,d)  lua_load(a,b,c,d,NULL)
+#define lua_resume(a,b)    lua_resume(a, NULL, b)
+#define luaL_loadfile(a,b) luaL_loadfilex(a,b,NULL)
+#define luaL_loadbuffer(a,b,c,d) luaL_loadbufferx(a,b,c,d,NULL)
+#define luaL_setfuncs(a,b) luaL_setfuncs(a,b,0)
 #else
-#define lua_rawlen(L,i)   lua_objlen(L, (i))
+#define lua_rawlen(L,i)    lua_objlen(L, (i))
+#define luaL_setfuncs(a,b) luaL_register(a,NULL,b)
+#endif
+#if LUA_VERSION_NUM > 502
+#define lua_dump(a,b,c,d) lua_dump(a,b,c,d,0)
 #endif
 
 /* Create a set of AP_LUA_DECLARE(type), AP_LUA_DECLARE_NONSTD(type) and