1 Star 0 Fork 36

eaglegai / haproxy

forked from src-openEuler / haproxy 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Add-support-for-the-Lua-5.4.patch 2.54 KB
一键复制 编辑 原始数据 按行查看 历史
lingsheng 提交于 2020-08-05 15:56 . Add support for the Lua 5.4
From 206999072ff408d2bbb8078e4dd4425b4bcfcfd9 Mon Sep 17 00:00:00 2001
From: Christopher Faulet <cfaulet@haproxy.com>
Date: Tue, 28 Jul 2020 10:33:25 +0200
Subject: [PATCH] MEDIUM: lua: Add support for the Lua 5.4
On Lua 5.4, some API changes make HAProxy compilation to fail. Among other
things, the lua_resume() function has changed and now takes an extra argument in
Lua 5.4 and the error LUA_ERRGCMM was removed. Thus the LUA_VERSION_NUM macro is
now tested to know the lua version is used and adapt the code accordingly.
Here are listed the incompatibilities with the previous Lua versions :
http://www.lua.org/manual/5.4/manual.html#8
This patch comes from the HAproxy's fedora RPM, committed by Tom Callaway :
https://src.fedoraproject.org/rpms/haproxy/blob/db970613/f/haproxy-2.2.0-lua-5.4.patch
This patch should fix the issue #730. It must be backported to 2.2 and probably
as far as 2.0.
(cherry picked from commit 08ed98fd7963968de49593304fdd9234812845a4)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit dc2e6f544fee393543cdeaae7bbb4fe57d49b409)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit a500aee9f0d6e1fc17c65735944b4e5cb5c1165f)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
---
src/hlua.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/hlua.c b/src/hlua.c
index 0b5eaafb9..c2d045ec2 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -1080,6 +1080,9 @@ void hlua_hook(lua_State *L, lua_Debug *ar)
*/
static enum hlua_exec hlua_ctx_resume(struct hlua *lua, int yield_allowed)
{
+#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504
+ int nres;
+#endif
int ret;
const char *msg;
const char *trace;
@@ -1110,7 +1113,11 @@ static enum hlua_exec hlua_ctx_resume(struct hlua *lua, int yield_allowed)
lua->start_time = now_ms;
/* Call the function. */
+#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504
+ ret = lua_resume(lua->T, gL.T, lua->nargs, &nres);
+#else
ret = lua_resume(lua->T, gL.T, lua->nargs);
+#endif
switch (ret) {
case LUA_OK:
@@ -8278,10 +8285,12 @@ static int hlua_load(char **args, int section_type, struct proxy *curpx,
memprintf(err, "Lua message handler error: %s\n", lua_tostring(gL.T, -1));
lua_pop(gL.T, 1);
return -1;
+#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM <= 503
case LUA_ERRGCMM:
memprintf(err, "Lua garbage collector error: %s\n", lua_tostring(gL.T, -1));
lua_pop(gL.T, 1);
return -1;
+#endif
default:
memprintf(err, "Lua unknonwn error: %s\n", lua_tostring(gL.T, -1));
lua_pop(gL.T, 1);
1
https://gitee.com/eaglegai/haproxy.git
git@gitee.com:eaglegai/haproxy.git
eaglegai
haproxy
haproxy
master

搜索帮助