From c00347899e9f0c3420f98c53eab1469644e28e06 Mon Sep 17 00:00:00 2001 From: Nenad Merdanovic Date: Sun, 23 Jul 2017 22:04:58 -0400 Subject: [PATCH 16/18] BUG/MINOR: lua: Fix Server.get_addr() port values The get_addr() method of the Lua Server class was using the 'sockaddr_storage addr' member to get the port value. HAProxy does not store ports in this member as it uses a separate member, called 'svc_port'. This fix should be backported to 1.7. (cherry picked from commit 3849473828f319829aff422d2fbbce0823e65d64) Signed-off-by: William Lallemand --- src/hlua_fcn.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c index fe899a4a..0752220e 100644 --- a/src/hlua_fcn.c +++ b/src/hlua_fcn.c @@ -545,8 +545,7 @@ int hlua_server_get_addr(lua_State *L) addr, INET_ADDRSTRLEN); luaL_addstring(&b, addr); luaL_addstring(&b, ":"); - snprintf(addr, INET_ADDRSTRLEN, "%d", - ntohs(((struct sockaddr_in *)&srv->addr)->sin_port)); + snprintf(addr, INET_ADDRSTRLEN, "%d", srv->svc_port); luaL_addstring(&b, addr); break; case AF_INET6: @@ -554,8 +553,7 @@ int hlua_server_get_addr(lua_State *L) addr, INET_ADDRSTRLEN); luaL_addstring(&b, addr); luaL_addstring(&b, ":"); - snprintf(addr, INET_ADDRSTRLEN, "%d", - ntohs(((struct sockaddr_in6 *)&srv->addr)->sin6_port)); + snprintf(addr, INET_ADDRSTRLEN, "%d", srv->svc_port); luaL_addstring(&b, addr); break; case AF_UNIX: -- 2.13.0